建立者模式

2021-05-21 15:08:01 字數 2473 閱讀 8474

當我們使用抽象工廠時,在客戶端進行呼叫的時候,如果產品的類別比較多,那麼此時工廠返回的例項物件將會很多。

客戶端得**將會大大增加,這將不利於程式的可讀性。為了解決此類問題,可以把所有例項的建立放在乙個類中去生成,

這樣在客戶端只需要呼叫這個建立者類,大大減少客戶端的**量。

1,所有動物類的介面

package joeho.net.csdn.blog.builder;

public inte***ce animal

2,老虎類

package joeho.net.csdn.blog.builder;

public class tiger  implements animal

public void eat()

}3,海豚類

package joeho.net.csdn.blog.builder;

public class doiphin  implements animal

public void eat()

}4,鸚鵡類

package joeho.net.csdn.blog.builder;

public class parrot implements animal

public void eat()

}5,亞洲老虎類繼承自老虎類

package joeho.net.csdn.blog.builder;

public class asiatiger  extends tiger

public void eat()

}6,亞洲海豚類繼承自海豚類

package joeho.net.csdn.blog.builder;

public class asiadoiphin  extends doiphin 

public void eat()

}7,亞洲鸚鵡類繼承自鸚鵡類

package joeho.net.csdn.blog.builder;

public class asiaparrot extends parrot

public void eat()

}8,非洲老虎類繼承自老虎類

package joeho.net.csdn.blog.builder;

public class africatiger  extends tiger

public void eat()

}9,非洲海豚類繼承自海豚類

package joeho.net.csdn.blog.builder;

public class africadoiphin  extends doiphin 

public void eat()

}10,非洲鸚鵡類繼承自鸚鵡類

package joeho.net.csdn.blog.builder;

public class africaparrot extends parrot

public void eat()

}11,抽象工廠類

package joeho.net.csdn.blog.builder;

public inte***ce animalfactory

12,具體工廠類

package joeho.net.csdn.blog.builder;

public class asiaanimalfactory implements animalfactory

}public class africaanimalfactory implements animalfactory

}12,組裝類

package joeho.net.csdn.blog.builder;

public class builder {

private animalfactory factory; 

public builder(animalfactory factory){

this.factory = factory;

public  void creatasiaanimal (){

asiatiger tiger = factory.creattiger();

tiger.eat();

asiadoiphin doiphin= factory.creattdoiphin();

doiphin.swim();

public  void creatafricaanimal (){

africatiger tiger = factory.creattiger();

tiger.eat();

africadoiphin doiphin= factory.creattdoiphin();

doiphin.swim();

5,客戶端呼叫**

builder bdr= new builder (new asiaanimalfactory () );

bdr.creatasiaanimal ();

建立者模式

建造者模式的定義將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示 大話設計模式 舉了乙個很好的例子 建造小人,一共需建造6個部分,頭部 身體 左右手 左右腳。與工廠模式不同,建造者模式是在導向者的控制下一步一步構造產品的。建造小人就是在控制下一步步構造出來的。建立者模式可以能...

建立者模式

建造者模式也叫生成器模式,是由gof提出的23種設計模式中的一種。builder模式是一種物件建立型模式,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承和過載的方式,動態地建立具有復合屬性的物件。物件的建立 builder模式是為物件的建立而設計的模式 建立的是乙個復合物件...

建立者模式

意圖 將乙個複雜的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。下面會發現模式實現方式與策略模式,橋接模式等都是相似的,唯有意圖不同而已.此為建立者模式 建立者模式在平時生活中很常見,如肯德基的 可樂可以跟很多東西組合成乙個 而你向服務員要的就是乙個 服務員就把不同東西組合在一起成了乙個...