工厂模式

一、简单工厂模式

在我看来该模式的本质就是通过工厂的选择进行对象的创建

先写一个接口

public interface operation {
    int getResult(int a,int b);
}

写两个实现类

public class operationAdd implements operation{
    public int getResult(int a, int b) {
        return a+b;
    }
}
public class operationSub implements operation{
    public int getResult(int a, int b) {
        return a-b;
    }
}

写工厂

public class operationFactory {
    public static operation getOperation(String op)
    {
        if(op.equals("+"))
        {
            return new operationAdd();
        }
        else if(op.equals("-"))
        {
            return new operationSub();
        }
        return null;
    }
}

最后测试

public static void main(String[] args) {
        System.out.println(operationFactory.getOperation("+").getResult(2, 3));
        System.out.println(operationFactory.getOperation("-").getResult(2, 3));
    }

二、工厂方法模式

将工厂类抽象,让他的每一个实现对应一个具体创建的操作

public interface operationFactory {
    public operation getOperation();
}
public class addFactory implements operationFactory{
    public operation getOperation() {
        return new operationSub();
    }
}
public class subFactory implements operationFactory{
    public operation getOperation() {
        return new operationAdd();
    }
}

测试

public static void main(String[] args) {
        operationFactory of=new addFactory();
        System.out.println(of.getOperation().getResult(2, 5));
    }

三、抽象工厂

抽象工厂就是把一类相关性高的抽象为一个接口,

比如上面的加法减法可以抽象成一个基本运算工厂。只是在上面两个的情况下进行了更详细的划分。

最后,工厂模式和反射可以很好的结合在一起。

原文地址:https://www.cnblogs.com/blogofjzq/p/9453947.html