工廠類模式提供的是建立單個類的模式,而建造者模式則是將各類產品集中起來進行管理,用來建立複合對象,所謂複合對象就是指某個類具備不一樣的屬性,其實建造者模式就是前面抽象工廠模式和最後的Test結合起來獲得的。咱們看一下代碼:java
還和前面同樣,一個Sender接口,兩個實現類MailSender和SmsSender。最後,建造者類以下:測試
public class Builder { private List<Sender> list = new ArrayList<Sender>(); public void produceMailSender(int count){ for(int i=0; i<count; i++){ list.add(new MailSender()); } } public void produceSmsSender(int count){ for(int i=0; i<count; i++){ list.add(new SmsSender()); } } }
測試類:ui
public class Test { public static void main(String[] args) { Builder builder = new Builder(); builder.produceMailSender(10); } }
從這點看出,建造者模式將不少功能集成到一個類裏,這個類能夠創造出比較複雜的東西。因此與工廠模式的區別就是:工廠模式關注的是建立單個產品,而建造者模式則關注建立符合對象,多個部分。所以,是選擇工廠模式仍是建造者模式,依實際狀況而定。code