一天乙個設計模式 享元模式

2021-09-29 12:44:31 字數 996 閱讀 8810

享元模式(flyweight pattern)主要用於減少建立物件的數量,以減少記憶體占用和提高效能。這種型別的設計模式屬於結構型模式,它提供了減少物件數量從而改善應用所需的物件結構的方式。

在享元模式中共享的是享元物件的內部狀態,外部狀態需要通過環境來設定。在實際使用中,能夠共享的內部狀態是有限的,因此享元物件一般都設計為較小的物件,它所包含的內部狀態較少,這種物件也稱為細粒度物件。享元模式的目的就是使用共享技術來實現大量細粒度物件的復用。

享元模式一般有個享元工廠來建立和管理享元物件,還需要為享元物件抽象出乙個介面,用來規範享元物件。

如果享元工廠不僅僅管理和建立享元型別的物件,那麼它和springioc容器的實現原理非常相似。

舉個栗子,畫畫,不同顏色的筆就是享元物件。

public

inte***ce

penpublic

class

whitepen

implements

pen@override

public

void

draw

(int x,

int y)

,{}"

,x,y);}

}public

class

blackpen

implements

pen@override

public

void

draw

(int x,

int y)

,{}"

,x,y);}

}

public

class

penfactory

public pen get

(string color)

}

main()

一天乙個設計模式 單例模式

1.餓漢模式public class sprivate static s s news public static s get 執行緒安全,載入時就初始化,根據需求來,此種用法最簡單2.懶漢模式public class sprivate static s s public static s get ...

一天乙個設計模式 建造者模式

這個模式和工廠模式很像,建造者 builder 模式和工廠模式的關注點不同 建造者模式注重零部件的組裝過程,而工廠方法模式更注重零部件的建立過程,但兩者可以結合使用。舉個栗子,stringbuilder public class abstractstringbuilder char c privat...

一天乙個設計模式 原型模式

原型模式即通過乙個已有的物件clone出乙個一樣的物件,當直接建立該物件非常消耗資源時則可以考慮原型模式。實現轉殖操作,繼承 cloneable,重寫object的 clone 轉殖分深度轉殖和淺度轉殖 淺度轉殖 只把需要轉殖物件的成員變數的值複製過去,如果是引用變數也只會複製引 用位址,指向的和原...