设计模式
文章平均质量分 52
sdausxc
这个作者很懒,什么都没留下…
展开
-
设计模式--原型模式
用原型实例创建对象的种类,并且通过拷贝这些原型创建新的对象。其实就是从一个对象再创建另一个可定制的对象,而且不知道任何创建的细节。原型模式中客户端并不知道要克隆对象的实际类型,只需知道基类类型就可以。克隆对象比直接创建对象的优点在于,克隆是将原有对象行为属性带到了新的对象中。C++没有克隆方法,要克隆一个对象,需要借助拷贝构造函数来实现。拷贝构造函数中实现拷贝的对象有浅拷贝和深拷贝。浅原创 2016-06-29 15:55:21 · 226 阅读 · 0 评论 -
设计模式六大原则
设计模式六大原则(1):单一职责原则定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,转载 2016-08-23 19:59:18 · 286 阅读 · 0 评论 -
设计模式-工厂方法模式
工厂方法模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖达到解耦、复用和方便后期维护拓展的目的。当前模式与简单工厂模式的不同是,当前模式使类的实例化延迟到其子类,并且相比简单工厂模式本模式更加符合开放-封闭原则。 工厂方法模式定义一个创建产品对象的接口,将实际创建工作推迟到子类中。相比于简单工厂核心工厂不再负责产品的创建,更好的体现依赖接口而不是依赖细节编程的原创 2016-06-22 21:02:52 · 227 阅读 · 0 评论 -
设计模式--简单共厂模式
简单工厂模式的UML类图如下图所示:简单工厂模式主要本质就是通过输入到工厂中的参数,实例化出合适的对象,从而完成不同工厂的创建。各部分分工如下所示:工厂,简单工厂模式的核心,完成对象的实例化。抽象产品,工厂要创建具体实例的父类,实现简单工厂的接口。具体产品,工厂要实际创建的对象。(当前介绍来自百度百科)优点工厂类是整个模式的关键.包含了必要的逻辑判断,根原创 2016-06-06 14:23:19 · 459 阅读 · 0 评论 -
设计模式-策略模式
策略模式:它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化不会影响到使用算法的客户。(应用场景、优缺点来自百度百科)应用场景:1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。2、 需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其它方式来实现。3、 对客户隐藏具体策略(算法)的实现细节,彼原创 2016-06-13 21:14:28 · 409 阅读 · 0 评论 -
设计模式-单一职责原则
内容来自百度百科单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。原理如果一个类承担的职责过多,就等于把这些职责耦合在一起了。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的转载 2016-06-16 15:13:05 · 331 阅读 · 0 评论 -
设计模式-依赖倒转原则
A、 高层模块不应该依赖底层模块。两个都应该依赖抽象B、 抽象不应该依赖细节,细节应该依赖抽象(针对接口编程,不要针对实现)里氏代换原则:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别,也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。简单的说就是,子类型必须能够替换他们的父类型。只有当子类可以替换掉父类,软件单位原创 2016-06-18 11:59:53 · 395 阅读 · 0 评论 -
设计模式-装饰模式
本文整理大话设计模式。通过人穿衣的例子引入装饰模式,首先装饰模式是指动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类给我灵活。#include "stdafx.h"#include #include using namespace std;class Persion{public: explicit Persion(){} explicit原创 2016-06-19 15:27:29 · 273 阅读 · 0 评论 -
设计模式-代理模式
通过大话设计模式中追求者、代理和女孩三者关系分析代理模式。首先,完成追求者通过代理送礼物给女孩。#include "stdafx.h"#include #include using namespace std;class SchoolGirl{public: explicit SchoolGirl(string name):m_name(name){} ~Sch原创 2016-06-20 15:48:53 · 242 阅读 · 0 评论 -
设计模式---迪米特法则
定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。低耦合的优点不言而喻,但是怎么转载 2016-07-06 10:28:57 · 312 阅读 · 0 评论 -
设计模式--模板方法模式
模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的的某些特定步骤。模板方法结构图,,如下图所示:原创 2016-07-06 09:57:34 · 231 阅读 · 0 评论 -
单例模式
单例模式属于一个比较简单的模式但是在考察的时候还是有不少考察的问题:单例模式应用场景原创 2016-10-25 10:43:25 · 244 阅读 · 0 评论