
设计模式
AlphaGQ
握不住的沙,何不随手扬了它
展开
-
设计模式—简单工厂(一)
(一)简单工厂模式主要用于创建对象。新添加类时,不会影响以前的系统代码。核心思想是用一个工厂来根据输入的条件产生不同的类,然后根据不同类重载函数得到不同的结果。注意只有一个工厂,工厂根据输入参数的不同来选择不同的类实现。例子:要求写一个控制台程序,要求输入两个数和运算操作符,得到结果。通常我们可以这样写:#include#include#includeusing原创 2017-05-21 19:15:42 · 492 阅读 · 0 评论 -
设计模式—状态模式(十二)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 状态模式(State):当一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它原创 2017-06-08 20:29:10 · 432 阅读 · 0 评论 -
设计模式—适配器模式(十三)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 适配器模式(Adapter):讲一个类的接口转换成客户希望的另一个接口。Adapter模式原创 2017-06-08 20:33:35 · 401 阅读 · 0 评论 -
设计模式—备忘录模式(十四)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保原创 2017-06-08 20:37:08 · 426 阅读 · 1 评论 -
设计模式—组合模式(十五)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 组合模式(Composite):将对象组合成树形结构以表示‘部分—整体’的层次结构。组合模原创 2017-06-09 23:08:58 · 382 阅读 · 1 评论 -
设计模式—迭代器模式(十六)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 迭代器模式:提供一种方法顺序访问一个聚敛对象的各个元素,而又不暴露该对象的内部表示。原创 2017-06-11 12:45:20 · 358 阅读 · 1 评论 -
设计模式—单例模式(十七)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访原创 2017-06-11 17:47:19 · 407 阅读 · 0 评论 -
设计模式—桥接模式(十八)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 当一个抽象可能有多个实现时,通常用继承协调他们,抽象类定义对该抽象的接口,而具体的子类则用原创 2017-06-12 21:09:29 · 501 阅读 · 1 评论 -
设计模式—命令模式(十九)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数原创 2017-06-12 22:38:36 · 420 阅读 · 1 评论 -
设计模式—责任链模式(二十)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 责任链模式(Chain of Responsibility):使多个对象都有机会处理请求,原创 2017-06-13 22:53:25 · 454 阅读 · 1 评论 -
设计模式—中介者模式(二十一)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 中介者模式:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示的相互引用,从而原创 2017-06-14 19:39:51 · 511 阅读 · 0 评论 -
设计模式—抽象工厂(十一)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 工厂模式:定义一个创建对象接口,让子类决定实例化哪一个类,在下图中就是定义了一个创建了原创 2017-06-07 23:27:09 · 583 阅读 · 1 评论 -
设计模式—访问者模式(二十三)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 访问者模式(Visitor):封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据原创 2017-06-18 23:10:16 · 489 阅读 · 0 评论 -
设计模式—观察者模式(十)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。1. 概述 有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听原创 2017-06-01 19:11:48 · 465 阅读 · 0 评论 -
设计模式—策略模式(二)
策略模式 软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 简单工厂缺点,每次增加相应子类,都要维护或者扩展这个工厂,以致原创 2017-05-22 23:15:38 · 538 阅读 · 0 评论 -
设计模式—装饰模式(三)
装饰模式 软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 动态地给一个对象添加一些额外的职责(不重要的功能,只是偶然一次原创 2017-05-24 22:03:20 · 426 阅读 · 0 评论 -
设计模式—代理模式(四)
代理模式(proxy):为其他对象提供一种代理以控制对这个对象的访问。优点:远程代理,可以隐藏一个对象在不同地址空间的事实 虚拟代理:通过代理来存放需要很长时间实例化的对象 安全代理:用来控制真实对象的访问权限 智能引用:当调用真实对象时,代理处理另外一些事#include #include using namespace std;//定义原创 2017-05-29 18:37:24 · 362 阅读 · 0 评论 -
设计模式—工厂模式(五)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 工厂方法(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个原创 2017-05-29 19:12:20 · 441 阅读 · 0 评论 -
设计模式—原型模式(六)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象;原创 2017-05-30 17:25:37 · 381 阅读 · 0 评论 -
设计模式—模板模式(七)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 如果类中用了继承,并且肯定这个继承有意义,就应该要成为子类的模板,所有重复的代码都应该要上原创 2017-05-31 09:58:15 · 350 阅读 · 1 评论 -
设计模式C++实现(1)——工厂模式
转载出处 http://blog.youkuaiyun.com/wuzhekai1985 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面转载 2017-05-19 23:23:53 · 292 阅读 · 0 评论 -
设计模式—外观模式(八)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 外观模式:为子系统的一组接口提供一个一致的界面,此模式定义一个高层接口,这个接口使得这一子原创 2017-05-31 16:34:44 · 415 阅读 · 1 评论 -
设计模式-设计原则
单一职责原则就一个类而言,应该仅有一个引起它变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责能力。这种耦合会导制脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。 如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。开放封闭原则 软件实体可以扩展,但是不可修改。即对于扩展是开放原创 2017-05-24 21:01:45 · 342 阅读 · 0 评论 -
设计模式—建造者模式(九)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 建造者模式(生成器模式):是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创原创 2017-05-31 19:44:48 · 410 阅读 · 0 评论 -
设计模式—享元模式(二十二)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 享元模式(Flyweight),运用共享技术有效地支持大量细粒度的对象。原创 2017-06-14 21:24:38 · 464 阅读 · 0 评论