简单的工厂模式 - 大话设计模式
*每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。*
先了解面向对象设计
当你需要实例化哪个类,或者未来会不会增加实例化对象,所以考虑用一个单独的类来做这个创造实例化的过程–工厂
耦合度降低 每个实例是相对独立的 做到了容易维护,扩展和复用
例子:

简单的工厂模式
1.PO类
java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| package com.sjs.SimpleFactory;
public class Operation { double numberA; double numberB;
public double getNumberA() { return numberA; }
public void setNumberA(double numberA) { this.numberA = numberA; }
public double getNumberB() { return numberB; }
public void setNumberB(double numberB) { this.numberB = numberB; }
public double getReasult() { double res = 0; return res; } }
|
2.加减乘除类(封装类继承基类)
java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| package com.sjs.SimpleFactory;
public class Add extends Operation { @Override public double getReasult() { return super.numberA + super.numberB; } }
class Sub extends Operation { @Override public double getReasult() { return super.numberA - super.numberB; } }
|
3.简单工厂类
java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package com.sjs.SimpleFactory;
public class OperationFactory { public static Operation operation(String operate) { Operation operation = null; switch (operate) { case "+": operation = new Add(); break; case "-": operation = new Sub(); break; } return operation; } }
|
4.使用简单工厂模式
java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| package com.sjs.SimpleFactory;
public class Test { public static void main(String[] args) { Operation operation = OperationFactory.operation("-"); operation.setNumberA(12); operation.setNumberB(23); System.out.println(operation.getReasult());
} }
|