<java與模式> ---電子書
第17章 page245 多例模式
當實例數目不多是時候,可以用一個個的靜態變量來存儲一個個的實例,在數目多是時候需要使用靜態聚集存儲方式來存儲這些實例。
問題:怎樣用靜態聚集存儲方式來存儲?具體如何實現?
建造模式(builder)
建造模式(builder)page277
建造模式可以將一個產品的內部表象與產品的生成過程分割開來,從而可以使一個建造過程生成具有不同的內部表象的產品對象
內部表象—一個產品有不同的組成成分作為產品的零件,這些零件有可以是對象,也有可能不是對象,它們通常又叫做產品的內部表象。
抽象建造者角色:給出一個抽象內部接口,以規范產品對象的各個組成成分的建造,一般而言,該接口獨立于應用程序的商業邏輯。
具體建造者角色:擔任這個角色的是與應用程序緊密相關的一些類,他們在應用程序調用下創建產品的實例。他的任務:1、實現抽象建造者所有申明的接口,給出一步一步的完成創建產品實例的操作。2、在創建過程完成后,提供產品的實例。
導演者:擔任這個角色的類調用具體建造者角色以創建產品對象。
產品角色:產品是焦躁中的復雜對象。
下面是一個由兩個產品類構成的建造模式結構圖:
第20章 原始原型模式
用意:原始模型模式屬于對象的創建模式;通過給出一個原形對象來指明所要創建的對象類型,然后用復制這個原型對象的辦法創建出更多類型的對象。
問題:什么叫不變對象? page314
簡單形式的原始模型模式:
客戶角色:客戶類提出創建對象的請求;
抽象原型角色:這是一個抽象角色,通常由一個java接口或java抽象實現,此角色給出所有的具體原型類所需要的接口;
具體原型角色:被復制的對象,此角色需要實現抽象的原型角色所要求的接口。
結構圖如下:
登記式原型模型模式:
增加了一個原型管理器角色:創建具體原型類的對象,并記錄每一個被創建的對象。
結構圖如下:
抽象原型 具體原型 客戶 原型管理器