定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
需要添加新功能时,由改工厂类变成了修改客户端。
优点:克服了简单工厂的违背开放-封闭原则的缺点。又保持了封装对象创建过程的优点。降低了客户端与产品对象的耦合。是简单工厂模式的进一步抽象和推广。由于使用了多态 性。
缺点:由于每加一个产品,就需要加一个产品工厂的类,增加了额外的开发量。但可以利用‘反射’来避免分支判断的问题。
1.工厂接口。
2.具体产品类,实现工厂接口。
3.客户端需要根据具体产品类工厂创建产品。