WEB开发网
开发学院软件开发C语言 无废话C#设计模式之四:Factory Method 阅读

无废话C#设计模式之四:Factory Method

 2009-04-02 08:21:31 来源:WEB开发网   
核心提示: 代码执行结果如下图:图片看不清楚?请点击这里查看原图(大图),代码说明l 这个代码基于前一节抽象工厂的代码修改而来,无废话C#设计模式之四:Factory Method(2),因此代码比较厂,其中能体现的设计模式有抽象工厂、工厂方法以及模版方法,在这里我们可能很清楚HalfPaperFac

代码执行结果如下图:

无废话C#设计模式之四:Factory Method

图片看不清楚?请点击这里查看原图(大图)。 

代码说明

l         这个代码基于前一节抽象工厂的代码修改而来,因此代码比较厂。其中能体现的设计模式有抽象工厂、工厂方法以及模版方法。

l         这次的PatrixSceneFactory和前一节的不同,它是一个产品的抽象工厂,也就是工厂方法模式中的抽象工厂角色,它是具体产品工厂的抽象形式。

l         HalfPaperFactory和MatrixFactory是工厂方法模式中的具体工厂角色,它负责创建具体的产品。

l         PatrixScene是工厂方法模式中的抽象产品角色,同时也是抽象工厂模式中的抽象工厂角色。它既是场景的抽象形式,又负责创建每个场景中的产品系列,也就是模型和纹理。还有,它的InistScene()方法还体现了模版方法的思想,封装了产品初始化过程中的共同步骤。

l         HalfPaper和Matrix当然就是工厂方法模式中的具体产品角色了,同时,它们也是抽象工厂模式中的具体工厂角色。

l         从这个例子可以看出,抽象工厂针对一组产品的创建进行抽象,抽象程度比较高。抽象工厂生产重点在于规范一组产品的创建,能让产品线保持产品的一致。比如,N卡不管是7系列还是8系列,总会分低端的7300,8300和中端的7600,8600以及高端的7900,8900。

l         而工厂方法针对某种产品的创建,每种产品在创建的过程中可能会有一些相似的步骤,那么就可以在抽象产品中进行一些提取,自然而然运用到了模版方法。工厂方法还能针对具体产品创建时的易变性,在这里我们可能很清楚HalfPaperFactory一定会创建HalfPaper这个产品,但是万一以后改为创建HalfPaperSpecial了呢?有了工厂方法,我们可以只需修改HalfPaperFactory就可以了。

上一页  1 2 3 4  下一页

Tags:废话 设计模式 Factory

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接