1.什么是工厂设计模式 就是创建者与调用者的分离,把创建对象具体过程屏蔽隔离起来,最终提高了代码的灵活性
1.1工厂模式分类
简单工厂 生产同一等级结果中任意产品,若增加新产品需修改已有代码 缺点就是会违反开闭原则(对扩展开放,对修改封闭)
工厂方法 生产同一等级结果中固定产品,支持增加任意产品
抽象工厂 生产不同产品族的全部产品,不支持增加新产品,支持增加产品组
2.简单工厂案例 2.1测试类 1 2 3 4 5 6 7 8 9 public class AnimalsTest { public static void main (String[] args) { Dog d = (Dog) AnimalsFactory.createAnimal("dog" ); d.eat(); Cat c = (Cat) AnimalsFactory.createAnimal("cat" ); c.eat(); } }
2.2动物类与子类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public abstract class Animals { public abstract void eat () ; }class Cat extends Animals { @Override public void eat () { System.out.println("猫吃鱼" ); } }class Dog extends Animals { @Override public void eat () { System.out.println("狗吃肉" ); } }
2.2 造动物的类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public class AnimalsFactory { public static Animals createAnimal (String name) { if ("dog" .equals(name)) { return new Dog (); }else if ("cat" .equals(name)){ return new Cat (); }else { return null ; } } }