上篇《大话设计模式C++版——抽象工厂模式》中,我们拯救世界未遂,留下小小的遗憾,本篇中我们将给出一个解决方案——COM组件技术,同时也顺便扯扯工厂模式在COM组件技术中的应用。
工厂模式违背开放—封闭原则的根本原因在于对象的产生无法通过客户模块外的数据进行控制,如果我们能从xml、注册表、配置文件中写入一个类的名字,然后模块从中读出类名,并根据读出的类名创建对象,那不就和C#高大上的反射技术一样牛B哄哄了。非常幸运,微软的COM组件技术就提供了这么一个平台。...
分类:
编程语言 时间:
2015-06-15 11:22:39
阅读次数:
143
工厂方法模式是以简单工厂模式为基础的,如果未了解简单工厂模式的同学可先浏览《大话设计模式C++版——简单工厂模式》。在简单工厂模式中,提到过简单工厂模式的缺陷,即违背了开发—封闭原则,其主要原因是由于switch的判断结构的使用,使修改或添加新的对象时需要改动简单工厂类的代码,不符合开放—封闭原则,那么工厂方法模式会在那方面有所改进呢?我们仍以简单工厂模式中加减法计算器为例。...
分类:
编程语言 时间:
2015-06-14 09:37:00
阅读次数:
233
纠结了好几天,总算是搞懂了点抽象工厂和工厂方法模式的一些区别了。
两篇很好的文章:
http://blog.csdn.net/superbeck/article/details/4446177
http://blog.csdn.net/wyxhd2008/article/details/5597975
抽象工厂其实跟工厂方法模式差不多,都遵循开放--封闭原则,使用工厂接口创...
分类:
其他好文 时间:
2015-06-11 09:34:34
阅读次数:
123
学习过简单工厂模式,感觉很好用。在创建对象时,可以将复杂的初始化操作从客户端分离出来,简化客户端代码。大大的减少了代码修改的难度。而且可以通过参数不同,创建不同的对象。
但是简单工厂模式也有一些弊端,违背了开放--封闭原则。即如果我们增加了一个产品,对应的工厂也要进行修改,即switch---case中要新增加一些分支条件,不利于扩展。所以就有了下面的工厂方法模式:
工厂方法模...
分类:
其他好文 时间:
2015-06-08 09:52:05
阅读次数:
106
一 单一职责原则1、避免系统的职责分散到不同的类中2、避免一个类承担过多的职责好处是可以减少类直接的耦合,提供类的复用性。二 接口隔离原则其实就是定制化服务设计原则,使用接口的多重继承实现对不同接口的组合,从而对外提供组合功能,打到按需提供服务。三 开放-封闭原则在扩展性方面是开放的,而在更改性方面...
分类:
其他好文 时间:
2015-06-01 09:30:18
阅读次数:
119
这几天囫囵吞枣看了下《设计模式其实很简单》,这本书通俗易懂,说了23种设计模式。自己看书比较仓促,看书时也不愿动脑子(这一直是致命缺点),先简单的抄下这些模式,希望日后能够回补。设计模式中的六大设计原则单一职责原则。里氏代换原则。开放-封闭原则。依赖倒转原则。合成/聚合复用原则。迪米特法则。下面.....
分类:
其他好文 时间:
2015-05-29 23:00:04
阅读次数:
202
米老师布置了作业,分析23种设计模式的异同,绞尽脑汁,冥思苦想还是认为初学设计模式,此问题过于高深实在不敢妄语。可是作业始终是要交的,只好浅谈一下设计模式,如理解有误,也算留下了一个底子,日后回头再看,这便是成长。
关于分类,设计模式分为三大类,分别为行为型,创建型,和状态型。 亦有几大原则,分别为:单一职责原则、开放-封闭原则、依赖导致原则、迪米特法则。
总体来说,不论什么模...
分类:
其他好文 时间:
2015-05-28 09:35:51
阅读次数:
174
背景 ????本文标题为什么叫小菜学习设计模式,原因是本文内容主要是学习《大话设计模式》时的笔记摘要部分,当然,并不是记录书中小菜的学习过程,这个完全没有意义,而是指本人学习设计模式的成长之旅...
分类:
其他好文 时间:
2015-05-26 14:30:48
阅读次数:
111
设计模式 简单工厂+工厂方法+抽象工厂阅读目录简单工厂产品树(产品等级)+产品族工厂方法抽象工厂:回到顶部简单工厂简单工厂的优缺点:缺点:①违反了OCP(开放-封闭原则)。(当工厂内增加一个方法创建对象时候,需要在原来的工厂内,添加一个case语句)。修改原来的类,是违反设计原则的。 ②增加客...
分类:
其他好文 时间:
2015-05-12 10:48:42
阅读次数:
124
简单工厂简单工厂的优缺点:缺点:①违反了OCP(开放-封闭原则)。(当工厂内增加一个方法创建对象时候,需要在原来的工厂内,添加一个case语句)。修改原来的类,是违反设计原则的。 ②增加客户端和工厂类的耦合。优点:①去除(非降低)客户端和具体产品的耦合。客户端和具体产品中间增加一个工厂类,增加...
分类:
其他好文 时间:
2015-05-11 21:35:22
阅读次数:
168