五分钟一个设计模式之工厂方法模式
来源:互联网 发布:遗传算法理解 编辑:程序博客网 时间:2024/05/22 05:14
五分钟一个设计模式,用最简单的方法来描述设计模式。查看更多设计模式,请点击五分钟一个设计模式系列
http://blog.csdn.net/daguanjia11/article/category/3259443
示例代码
下面定义一个抽象类,这个类中有一个具体方法(MyMethod)和一个抽象方法(AbstractMethod),具体方法调用了抽象方法。
public abstract class AbstractClass{ public void MyMethod() { string str = AbstractMethod(); Console.WriteLine(str); } protected abstract string AbstractMethod();}
具体方法调用了抽象方法,并且,抽象方法需要在子类中实现,所以,子类实现的抽象方法会对父类中的具体方法产生影响。下面定义两个子类
public class Class1 : AbstractClass{ protected override string AbstractMethod() { return "I am class1"; }}public class Class2 : AbstractClass{ protected override string AbstractMethod() { return "I am class2"; }}
在上面的代码中,子类实现的AbstractMethod方法的返回值,直接决定了父类中MyMethod方法中的输出。下面是场景类
class Program{ static void Main(string[] args) { AbstractClass class1 = new Class1(); AbstractClass class2 = new Class2(); class1.MyMethod(); class2.MyMethod(); }}
输出结果为:
I am class1
I am class2
模式解读
在工厂方法模式中,抽象的父类有一个经常变化的方法,被声明为抽象方法,这个抽象方法要在子类中实现,也就意味着,在一组具有某些共同特征的类中,相同的代码写在父类中,而不同的代码分别写在了各个具体子类的工厂方法中。
定义
百度百科是这么定义工厂方法模式的:
工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。
2 0
- 五分钟一个设计模式之工厂方法模式
- 五分钟一个设计模式之模板方法模式
- 设计模式之(五、工厂方法模式)
- 设计模式之五工厂方法模式
- 五分钟一个设计模式之创建者模式
- 五分钟一个设计模式之代理模式
- 五分钟一个设计模式之单例模式
- 五分钟一个设计模式之观察者模式
- 五分钟一个设计模式之命令模式
- 五分钟一个设计模式之策略模式
- 五分钟一个设计模式之组合模式
- 五分钟一个设计模式之装饰器模式
- 五分钟一个设计模式之责任链模式
- 五分钟一个设计模式之适配器模式
- 设计模式实战应用之五:工厂方法模式
- 设计模式(五)之工厂方法模式
- 设计模式之五:工厂方法模式(Factory Method)
- 设计模式(五):工厂方法模式
- 并查集
- 清华赵骥主任与CIO石海军研讨互联网信息化
- inline内联函数
- webkit开发前的准备工作
- android 调用系统的照相机和图库实例详解
- 五分钟一个设计模式之工厂方法模式
- Python语法实践之初探列表推导与生成器
- JavaBean
- [leetcode][search] Find Minimum in Rotated Sorted Array II
- 黑马程序员_Java(字符流)
- 利用百度API画多边形的问题
- 5-22
- dinic算法的学习——hdu4280
- ie剪切增强版工具---自由填表工具filltable