java设计模式(建造者模式)
建造者模式又是一种工厂模式的扩展。工厂类提供了生产单个产品的功能,而建造者模式则可以将各种产品集中集中起来进行统一管理。
建造者模式用来创建复合对象,并把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。所谓复合对象,指有别于一般的对象,该对象具有不同的复合属性。比如我们把一个农场看成一个复合对象,是因为该农场由多个猪,鸡,牛,羊组成的,这些单个的产品可能因为农场主的不同而不同,但这些不同的产品最终都能被封装成为一个农场,这些不同的产品我们可称为农场的复合属性,同样可称该农场为一个复合对象。
实际上,建造者模式等价于多个工厂方法模式加上其测试类所拥有的功能,即它不仅负责创建各个产品,还负责提供计算价钱等管理功能。
●建造者模式Farm.java
[基础类Pig Chicken Sheep请看前面的工厂模式]
public class Farm{ private List<Animal> list = new ArrayList<Animal>(); //生产猪 public void producePig(int count){ for(int i = 0;i < count; i++){list.add(new Pig());} } //生产鸡 public void produceChicken(int count){ for(int i = 0;i < count; i++){list.add(new Chicken());} } //生产羊 public void produceSheep(int count){ for(int i = 0;i < count; i++){list.add(new Sheep());} } //求和方法 public int sum(){ int money = 0; for(Animal animal : list){money += animal.sale()} return money; }}