您的位置:首页 > 其它

工厂方法模式( Factory Method Pattern)

2012-09-13 21:51 344 查看

一、工厂方法模式简介(Brief Introduction)

工厂方法模式(Factory Method Pattern),定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类中。

二、解决的问题(What To Solve)

工厂方法模式较简单工厂模式,修改时关闭的,扩展时开放的,完全符合开放-封闭原则。工厂方法使一个类的实例化延迟到其子类中。

三、工厂方法模式分析(Analysis)

1、工厂方法模式结构



Product抽象类,定义工厂方法所创建的对象接口。

ConcreteProduct实现类,具体的产品,实现Product接口。

Factory抽象类,声明工厂方法,该方法返回一个Product类型的对象。

ConcreteFactory类,抽象工厂类Factory的具体实现,返回一个ConcreteProduct实例

四.实例分析(Example)

1、场景

一个简单计算器,具有简单的加操作和减操作。结构如下图所示



Factory:抽象工厂方法类.

AddFactory:加法工厂

SubFactory,减法工厂.

Operation:抽象操作类

AddOperation:加法操作

SubOperation:减法操作

2、代码

1、抽象操作类Operation,及其具体实现类AddOperation、SubOperation

///<summary>
///抽象操作类
///</summary>
public abstractclass
Operation
{
public
int numberA;
public
int numberB;
public
abstract int GetResult();
}
///<summary>
///加法操作
///</summary>
public classAddOperation :
Operation
{
public
override int GetResult()
{
return (this.numberA +this.numberB);
}
}
///<summary>
///减法操作
///</summary>
public classSubOperation :
Operation
{
public
override int GetResult()
{
return (this.numberA -this.numberB);
}
}
2、抽象工厂类Factory及其具体工厂类AddFactory、SubFactory

public abstractclass
Factory
{
public
abstract Operation CreateOperation();
}

public classAddFactory :
Factory
{
public
override Operation CreateOperation()
{
return
new AddOperation();
}
}

public classSubFactory:Factory
{
public
override Operation CreateOperation()
{
return
new SubOperation();
}
}
3、客户端代码

static void Main(string[] args)
{
Console.WriteLine("使用工厂方法进行计算");
Factory factory1 =
new AddFactory();
Operation operation1= factory1.CreateOperation();
operation1.numberA = 10;
operation1.numberB = 20;
Console.WriteLine("{0}+{1}={2}", operation1.numberA, operation1.numberB, operation1.GetResult());

Factory factory2 =
new SubFactory();
Operation operation2 = factory2.CreateOperation();
operation2.numberA = 10;
operation2.numberB = 20;
Console.WriteLine("{0}+{1}={2}", operation2.numberA, operation2.numberB, operation2.GetResult());
Console.Read();
}

3、实例运行结果



五、总结(Summary)

本文对工厂方法模式(Factory Method Pattern)的概念及其设计结构图简单地进行了描述,同样也以一个计算器的实例进行了说明,工厂方法模式较简单工厂模式,修改时关闭的,扩展时开放的,完全符合开放-封闭原则.



版权
作者:灵动生活

出处:http://www.cnblogs.com/ywqu

如果你认为此文章有用,请点击底端的【推荐】让其他人也了解此文章,

你也可以加我的新浪微博,以便实时了解我的动态:http://weibo.com/ywqu

WOWO英语(英语培训学校):http://www.wowomandarin.com 上海电子商务解决方案:http://www.hello36.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: