最近朋友推荐了一本书《大话设计模式》, 此书刚刚到, 博主也还没开始看, 希望以博文的方式与大家一起分享, 一起学习.
简单工厂模式, 也就是说, 到底要实列化谁, 将来会不会增加实列化的对象, 比如增加开根运算, 这是很容易实列化的地方应该考虑用一个单独的类来做这个创造实列的过程,这就是工厂, 来我们一起看看这个类如何写。
简单运算工厂类:
- import public public class OperationFactory {
- public static OperationFactory(string operate) {
- Operation oper = null;
- switch (operate) {
- case "+";
- oper = new OperationFactory();
- break;
- case "-";
- oper = new OperationFactory();
- break;
- case "*";
- oper = new OperationFactory();
- break;
- case "/";
- oper = new OperationFactory();
- break;
- }
- return oper;
- }
- }
看到了吧, 这样子只需要输入运算符号, 工厂就实列出合适的对象, 通过多态,返回父类的方式实现了计算器的结果。
客户端代码:
- #客户端代码Operation oper;
- oper = OperationFactory.createOperate("+");
- oper.NumberA = 1;
- oper.NumberB = 2;
- double result = oper.GetResult();
界面实现就是这样的代码、不管你是控制台程序, Windows 程序, web 程序, PDA 或手机程序,都可以用这段代码来实现计算器的功能,如果有一天我们需要更改加法运算, 我们只需要改 (OperationADD)就可以了,那么我们需要增加各种复杂运算, 比如平方根, 立方根, 自然对数, 正弦和余弦等, 那么如何做呢?(只要增加相应的运算子类就可以了),增加之后, 还得需要去修改一下运算类工厂, 在 switch 中增加分支。
写到这, 不知不觉到结尾了, 这就是简单的工厂模式, 以下是几个类的结构图.
模式还有很多...... 待更新
来源: http://www.cnblogs.com/wuyongcong/p/5838423.html