------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
较为方便的创建对象的方式
优点:较为方便的创建对象的方式,不用考虑内部实现方法
缺点:违反的高内聚的原则,如果新添加具体类,就必须修改工厂
实现方式
1.创建抽象产品角色(抽象类或接口,所有类的父类,包含公共的功能)
2.创建具体产品角色(实现类,继承抽象类)
3.创建工厂角色(通过传递参数,静态方法返回具体类的对象,由工厂传入的参数决定生成的对象)
1.抽象产品角色
//产品类 //抽象产品角色 //所有具体产品的父类定义的产品的公有方法 abstract class Animal{ abstract void eat();//公有方法 }2.创建具体产品角色
<span style="font-size:10px;">//具体产品角色 //产品的具体实现 class Dog extends Animal{ void eat() { System.out.println("狗吃骨头"); } } //具体产品角色 //产品的具体实现 class Cat extends Animal{ void eat() { System.out.println("猫吃鱼"); } }</span>3.创建工厂角色(如果添加新的具体类必须修改工厂)
//工厂类 //工厂角色 //负责创建所有的对象的工厂 class SimpleFactory{ <span style="white-space:pre"> </span>//根据参数创建具体类 public static Animal createAnimal(String type){ if("dog".equals(type.toLowerCase())){ return new Dog(); }else if("cat".equals(type.toLowerCase())){ return new Cat(); } return null; } }
public class Main { public static void main(String[] args) { Animal a = SimpleFactory.createAnimal("dog"); a.eat(); a = SimpleFactory.createAnimal("cat"); a.eat(); } }
狗吃骨头
猫吃鱼