建造者模式(builder)
public class ******entity1
}public class ******entity2
}
public class complexentity
}
public static void main(string args)
create ******entitya1...
create ******entity2...
createcomplexentity ... with ******entity1 and ******entity2
物件耦合度過高,簡單物件,複雜物件都與呼叫程式耦合.
當簡單物件組合的方式發生變化時,由其組合建立的複雜物件也跟著發生變化.
將乙個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示.
需要生成的物件具有複雜的內部結構.
需要生成的物件內部屬性本身互相依賴.
builder:建立產品物件的公共介面.
concretebuilder:實現builder介面並產生具體的簡單物件,以供合成複雜物件.
director:呼叫具體建造者,指導產生過程.
product:最終產生的複雜產品物件.
public class complexentity
public void set******entitya(i******entitya a)
public void set******entityb(i******entityb b)
}
public inte***ce i******entitya
public inte***ce i******entityb
public class ******entitya1 implements i******entitya
}public class ******entityb1 implements i******entityb
}
public inte***ce ibuilder
public class builder1 implements ibuilder
@override
public void create******entityb()
@override
public complexentity createcomplexentity()
}
public class director
}
public static void main(string args)
create complexentity ...
create ******entitya1 ...
complexentity set ******entitya ...
create ******entityb1 ...
complexentity set ******entityb ...
易於擴充套件(新增具體建造者).
易於解耦(產品本身與產品建立過程).
精確控制複雜物件的建立.
範圍(簡單物件需有共同點).
內部變化不能過於複雜(會產生大量具體建造者).
end Builder 建造者模式
模式定義 builder模式很好地將乙個複雜物件的建立與該物件內部的各個部件的組裝分離開來。它和 abstract factory模式有相似的地方,但是abstract factory主要提供了乙個建立一些列相關或相互依賴的物件的介面,無需知道指定他們具體的類 生產者 而builder模式著重於部件...
建造者模式(Builder)
工廠類模式提供的是建立單個類的模式,而建造者模式則是將各種產品集中起來進行管理,用來建立復合物件,所謂復合物件就是指某個類具有不同的屬性,其實建造者模式就是前面抽象工廠模式和最後的test結合起來得到的。我們看一下 還和前面一樣,乙個sender介面,兩個實現類mailsender和smssende...
建造者模式(Builder)
4 建造者模式 builder 工廠類模式提供的是建立單個類的模式,而建造者模式則是將各種產品集中起來進行管理,用來建立復合物件,所謂復合物件就是指某個類具有不同的屬性,其實建造者模式就是前面抽象工廠模式和最後的test結合起來得到的。我們看一下 建造者類如下 抽象產品類,使用了模板方法模式,不同產...