Java设计模式之工厂方法模式

来源:互联网 发布:马云怎么赚淘宝的钱 编辑:程序博客网 时间:2024/06/05 08:53

工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类觉得实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。


工厂方法与简单工厂方法的区别,简单工厂再增加新的ConcreteProduct的时候 都要去修改Fectory的switch条件,而工厂方法不需要修改Fectory对象,只需要添加新的Fectory子类。

参照对比:Java设计模式之简单工厂模式:http://blog.csdn.net/qq_35508033/article/details/78820157

工厂接口:

public interface IFactory {//工厂接口    public Operation createOperation();}class AddFactory implements IFactory {    @Override    public Operation createOperation() {        return new OperationAdd();    }}class SubFactory implements IFactory {    @Override    public Operation createOperation() {        return new OperationSub();    }}class MulFactory implements IFactory {    @Override    public Operation createOperation() {        return new OperationMul();    }}class DivFactory implements IFactory {    @Override    public Operation createOperation() {        return new OperationDiv();    }}
工厂方法客户端:
public class FactoryClient {//工厂方法客户端    public static void main(String[] args) {        IFactory operFactory = new DivFactory();        Operation operation = operFactory.createOperation();        operation.numberA = 3.4;        operation.numberB = 4.5;        System.out.println(operation.result());    }}

运行结果:

0.7555555555555555