设计模式之简单工厂模式
优点
缺点
例子
实现一个计算器
// 构建一个抽象父类
1 2 3 4 5 6
| abstract class Operation { public int numA; public int numB; public abstract int GetResult(); }
|
// 构建实现类。具体产品角色,实现 Product 中的接口
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 28 29 30 31 32 33 34 35
| class Add extends Operation { @Override public int GetResult() { return numA + numB; } }
class Sub extends Operation { @Override public int GetResult() { return numA - numB; } }
class Mul extends Operation { @Override public int GetResult() { return numA * numB; } }
class Div extends Operation { @Override public int GetResult() { if (numB == 0) { System.out.println("ERROR!"); return -1; } return numA / numB; } }
|
// 工厂角色(核心)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| class OperationFactory { public static Operation CreateOperation (char operate) { Operation oper = null; switch(operate) { case '+': oper = new Add(); break; case '-': oper = new Sub(); break; case '*': oper = new Mul(); break; case '/': oper = new Div(); break; default: break; } return oper; } }
|