简单工厂模式学习笔记
来源:互联网 发布:益盟卖软件怎么样 编辑:程序博客网 时间:2024/05/22 16:37
最近开始看点设计模式,由于我这人脑袋有点笨所以简单工厂模式也是看了几遍才慢慢领悟点意思出来。所以在这里记录下来好日后翻阅。
简单工厂模式又叫做静态工厂方法(StaticFactory Method)模式,简单的来说就是利用一个工厂类来操作处理返回实例化对象。这个工厂就像一个小工厂一样来生产会产品。
下面是简单工厂模式的UML图:
从上图可以看出类Product_A 和类Product_B都继承自基类IProduct并实现基类里的方法(实现出来的这个方法当然是不一样的)。而工厂类Creator的作用就是根据请求的不一样返回不一样的产品类实例化对象,及返回Product_A或Product_B的一个实例化对象。
下面是我自己写的一个简单的计算器demo
1.先创建一个计算的基类,写了一个虚方法便于子类重写这个方法。
public class Operation { private double _NumA = 0; private double _NumB = 0; public double NumB { get { return _NumB; } set { _NumB = value; } } public double NumA { get { return _NumA; } set { _NumA = value; } } public virtual double GetResult() { double result = 0; return result; } }
2.创建具体的加减乘除的计算类(都继承自基类Opreation)并重写父类方法GetResult(),一下就只给出加法的类
public class OperationAdd:Operation { public override double GetResult() { return NumA + NumB; } }
3.创建工厂类用来实例化不同的对象
public class OperationFactory { public static Operation CreatOperator(string operate) { Operation op = null; switch (operate) { case "+": op = new OperationAdd(); break; case "-": op = new OperationSub(); break; } return op; } }
4.然后就是调用了,调用的时候很方便
class Program { static void Main(string[] args) { Operation op = FFactory.OperationFactory.CreatOperator("+"); op.NumA = 12.29; op.NumB = 15.12; Console.WriteLine(op.GetResult()); Console.ReadLine(); } }
这样一个简单的简单工厂模式就实现了。
简单工厂设计模式也是有缺点的。因为简单工厂模式将实例化对象的所有逻辑都放在一个工厂类里面,如果要添加一个实现类就得去修改工厂类,所以简单工厂模式跟高内聚原则是相悖的,
- 简单工厂模式学习笔记
- 学习笔记:简单工厂模式
- 学习笔记:简单工厂模式
- 【设计模式】简单工厂模式学习笔记
- 设计模式学习笔记--简单工厂模式
- 设计模式学习笔记--简单工厂模式
- 设计模式学习笔记-简单工厂模式
- 学习笔记_简单工厂模式
- 设计模式学习笔记二-(简单工厂)
- 学习设计模式笔记--简单工厂
- 设计模式学习笔记——简单工厂模式、工厂方法模式、抽象工厂模式
- 设计模式-工厂模式 抽象工厂模式 简单工厂模式学习笔记
- 简单工厂模式(笔记)
- 简单工厂模式、工厂模式、抽象工厂模式(学习笔记)
- 简单工厂模式学习
- 简单工厂模式学习
- 学习简单工厂模式
- 简单工厂模式学习
- C++对象构造函数与析构函数的调用时间问题
- Cstring取其中一部分字符串的做法
- ffplay 流程图
- 今天大脑还是动了点···
- 一个Ant文件的讲解
- 简单工厂模式学习笔记
- ASP.NET使用Request获取来源网址URL参数
- Hello Android - File文件操作
- 求阶乘数包含0的个数
- Http Post Get 本质区别详解
- 将一个字符串插入到另一个字符串的某个位置
- C++基础知识学习笔记(一)
- 专注
- 券商的推荐股, 放这里将来检验