
设计模式
wmm888888
这个作者很懒,什么都没留下…
展开
-
设计模式------------工厂方法模式
设计模式总览工厂方法的核心思想就是将具体的实例化推迟到子类。与简单工厂相比,它弥补了简单工厂的一些不足,如:简单工厂打破了开闭原则!工厂方法只负责创建对象,将原本的逻辑判断放到了client中。下面是用简单工厂实现的一个例子:class IProduct{public: virtual void Function() = 0;};class Produc原创 2014-03-26 12:33:11 · 749 阅读 · 0 评论 -
设计模式六大原则----------接口隔离原则
设计模式总览接口隔离原则:1、使用多个转么的接口比一个庞大的接口好2、类之间的依赖建立在最小接口上实例分析现要实现一个系统:有查询功能,新建记录功能,修改记录功能。对于不同的用户,使用权限也不同,一般用户只能查询,会员能新建记录,而超级用户能修改记录。下面看看如何实现class System{public: void find(); void creat原创 2014-03-26 14:30:36 · 778 阅读 · 0 评论 -
设计模式六大原则----------里氏替换原则
设计模式总览里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现;并且完全察觉不出父类对象和子类对象的区别。要实现这个原则,需要满足一下条件①public继承②不要覆盖、重载基类中的任何函数。③子类必须具有父类的所有性质。原创 2014-03-25 18:11:09 · 908 阅读 · 0 评论 -
设计模式六大原则----------依赖倒置原则
设计模式总览所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。原创 2014-03-25 17:32:47 · 967 阅读 · 0 评论 -
设计模式六大原则----------开闭原则
设计模式总览遵循开闭原则设计出的模块具有两个主要特征:(1)对于扩展是开放的(Open for extension)。这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。也就是说,我们可以改变模块的功能。(2)对于修改是关闭的(Closed for modification)。对模块行为进行扩展时,不必改动模块的源代码或者二原创 2014-03-25 13:47:55 · 1311 阅读 · 0 评论 -
设计模式六大原则----------单一职责原则
设计模式总览单一职责原则,顾名思义,就是一个类只有一个职责。那么这个职责到底是什么意思呢?它可以被理解为“引起变化的原因”。如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。然而,在现实的设计中,很难做到所有的类都实现单一职责原则。所以一般这样规定:接口一定要实现单一职责原原创 2014-03-25 11:08:37 · 785 阅读 · 0 评论 -
设计模式六大原则----------迪米特法则
设计模式总览迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。这样就能有效降低耦合了。特点:1、只和“朋友”联系2、就算是“朋友”也要少建立联系实例分析:1、只和“朋友”联系,那这里的“朋友”是什么呢?“朋友原创 2014-03-26 13:57:11 · 1138 阅读 · 0 评论 -
设计模式------------装饰者模式
设计模式总览装饰者模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。原创 2014-03-26 10:43:49 · 812 阅读 · 0 评论 -
设计模式------------策略模式
设计模式总览/* 策略模式定义了一系列的算法,并将每一个算法分别封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。应用场景: 1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。 2、 需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其它方式来实现。 3、 对客原创 2014-03-24 16:12:54 · 653 阅读 · 0 评论 -
设计模式------------简单工厂
设计模式总览/* 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。优点 工厂类是整个模式的关键.包含了必要的逻原创 2014-03-24 15:23:48 · 772 阅读 · 0 评论 -
设计模式------------UML关系
设计模式总览依赖关系,关联关系,继承关系,接口实现,组合关系,聚合关系,这里说几种常用的关系表示方法:1、依赖关系: 用虚线+箭头表示。 依赖关系体现为下列几种情况: ①成员函数参数 ②局部变量 ③调用静态方法class A{public: int a; static vo原创 2014-03-24 14:51:10 · 936 阅读 · 0 评论 -
设计模式总览
设计模式六大原则:1、设计模式六大原则----------单一职责原则2、设计模式六大原则----------开闭原则3、设计模式六大原则----------依赖倒置原则4、设计模式六大原则----------里氏替换原则5、设计模式六大原则----------迪米特法则6、设计模式六大原则----------接口隔离原则原创 2014-03-24 13:59:02 · 958 阅读 · 0 评论 -
设计模式------------访问者模式
设计模式总览先从例子开始:需求:现有Item类接口IItem和其具体类Item_A,Item_B,Item_C。若我们想给Item添加功能,则可以这样:(不是访问者模式)每个Visitor都是一个新的功能。这样要拓展Item只需要实现派生类,拓展功能也是只需要实现Visitor的派生类。但现在需求发生改变,对于每一个具体的Visitor来说,Item不同,执原创 2014-03-28 12:18:20 · 852 阅读 · 0 评论 -
设计模式------------抽象工厂
设计模式总览优点:提供了很好的封装性!对于客户来说,完全不用关心每个产品的具体类,只需要知道产品的抽象接口!这也正是面向接口编程!支持系列拓展!从图中可以看出,现在有两个系列,系列1,和系列2。假如现在要对系列进行拓展,添加系列3,可以直接写相应的具体类,很好的迎合了开闭原则。缺点:优点中提到了它能很好的适应系列拓展。但相反他对产品种类的拓展无能为力。现原创 2014-03-28 09:30:27 · 744 阅读 · 0 评论 -
设计模式六大原则----------总结
设计模式总览六大yunaz原创 2014-07-13 21:41:02 · 859 阅读 · 0 评论