声明接口
public interface Animal { void run(); }
实现类一
public class Bird implements Animal { public void run() { System.out.println("飞着跑"); } }
实现类二
public class Worm implements Animal { public void run() { System.out.println("趴着跑"); } }
建造者类
public class Builder { private List<Animal>list=new ArrayList<>(); public List<Animal> createWorm(Integer count){ for (int i=0;i<count;i++){ list.add(new Worm()); } return list; } public List<Animal> createBird(Integer count){ for (int i=0;i<count;i++){ list.add(new Bird()); } return list; } }
实例
public class Demo { public static void main(String[] args) { Builder builder=new Builder(); List<Animal> bird = builder.createBird(2); } }
建造者模式将很多功能集成到一个类里,这个类可以创造出比较复杂的东西。所以与工程模式的区别就是:工厂模式关注的是创建单个产品,
而建造者模式则关注创建符合对象,多个部分。因此,是选择工厂模式还是建造者模式,依实际情况而定