设计模式C++实现(10)——(行为型)观察者模式

  软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》...

2018-08-05 23:52:41

阅读数 26

评论数 0

GoF23种设计模式概述

设计模式的经典名著——Design Patterns: Elements of Reusable Object-Oriented Software,中译本名为《设计模式——可复用面向对象软件的基础》的四位作者Erich Gamma、Richard Helm、Ralph Johnson,以及John...

2018-05-12 10:35:43

阅读数 53

评论数 0

工厂模式与OO设计原则

如果把创建看作一个职责,那么系统中的哪个对象应该拥有这个职责呢?如果把创建看作知识,那么创建知识应该放置在什么地方呢?说到职责我们不得不说一下著名的GRASP原则:GRASP是通用职责分配软件模式(General Responsibility Assignment Software pattern...

2018-05-12 10:30:24

阅读数 89

评论数 0

设计模式C++实现(9)——命令模式

一、简介          Command命令模式为了解决的问题是:当系统请求繁多复杂时,将请求封装到一个对象(Command)中,并将请求的接受者存放到具体的ConcreteCommand类(Receiver)中,从而实现调用操作的对象和操作的具体实现者之间的解耦。     ...

2018-01-08 22:50:03

阅读数 57

评论数 0

设计模式C++实现(8)——桥接模式

一、简介         Bridge模式是为了解决将将抽象部份与它的实现部分分离,即将抽象(Abstraction)与实现(AbstractionImp)分离,使得二者可以独立地变化,从而尽可能地提高系统模块内部的内聚(Cohesion)、尽可能降低模块间的耦合(Coupling)...

2018-01-05 23:08:43

阅读数 62

评论数 0

懒汉式单例和饿汉式单例优缺点

1、时间和空间 比较上面两种写法:懒汉式是典型的时间换空间,也就是每次获取实例都会进行判断,看是否需要创建实例,浪费判断的时间。当然,如果一直没有人使用的话,那就不会创建实例,则节约内存空间。 饿汉式是典型的空间换时间,当类装载的时候就会创建类实例,不管你用不用,先创建出来,然后每次调...

2018-01-04 23:03:28

阅读数 1838

评论数 2

C++的单例模式与线程安全单例模式(懒汉/饿汉)

1 教科书里的单例模式   我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例。   上...

2018-01-04 22:47:57

阅读数 65

评论数 0

设计模式C++实现(7)——迭代器模式

提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍 历的时候,就应该考虑用迭代器模式。同时需要对聚集有多种方式遍历时,可以考虑用迭代器模式。为遍历不同的聚集结构提供如开始、下一个、是否结束、当前哪 一项等统一接口。迭代器...

2018-01-04 22:21:55

阅读数 55

评论数 0

设计模式C++实现(6)——备忘录模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设...

2018-01-03 22:28:53

阅读数 71

评论数 0

设计模式C++实现(5)——状态模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设...

2017-12-26 22:43:30

阅读数 75

评论数 0

设计模式C++实现(4)——外观模式、组合模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设...

2017-12-19 22:40:50

阅读数 49

评论数 0

设计模式C++实现(3)——(结构型)装饰模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设...

2017-12-11 21:48:36

阅读数 76

评论数 0

简单工厂模式和策略模式的区别

按一般教程中出现的例子理解: 简单工厂模式:客户端传一个条件进工厂类,工厂类根据条件创建相应的产品类对象,并return给客户端,供客户端使用。即客户端使用的是工厂类生产的产品对象。 策略模式:客户端创建一个Context类对象a(可以看作是工厂模式中工厂类),创建一个策略对象...

2017-12-10 23:13:54

阅读数 53

评论数 0

设计模式C++实现(2)——(行为型)策略模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设...

2017-11-29 10:02:50

阅读数 56

评论数 0

设计模式C++实现(1)——(创建型)工厂模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设...

2017-11-28 20:02:16

阅读数 76

评论数 0

单例模式详解

单实例 我们在设计某些类时,根据需求,有时只需要一个实例,不想过多浪费内存,这就可以通过单实例的方式。 如,我们在使用windows的任务管理器时,弹出的始终是一个窗口, 这里如果对象采用多实例模式,那么就会弹出多个窗口,会出现下述两种情况: 第一,如果这些窗口显示的内容不一致,则意味着在某...

2016-10-10 21:55:11

阅读数 173

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭