
C++ 设计模式
C++ 常见的23类设计模式
yangxianpku
这个作者很懒,什么都没留下…
展开
-
第6节 装饰者模式(单一职责)
一、单一职责模式概述 在软件设计中,如果职责划分不清晰,使用继承得到的结果往往随着需求的变化子类急剧膨胀,同时充斥着冗余的代码; 单一职责模式典型:装饰者模式、桥模式 二、装饰者模式动机 在某些情况下,我们可能会过度使用继承来扩展对象的功能,由于继承为类型的静态特性,使得这种扩展缺乏灵活性; 此外,随着子类的增多,各种子类的组合会导致更多子类的膨胀; 如何使得对象功能的扩展能够根据需要来动态...原创 2020-03-11 15:23:45 · 237 阅读 · 0 评论 -
第5节 观察者模式
一、模式动机 在软件构建中,我们需要为某些对象构建一种"通知依赖"关系,一个对象(目标对象)状态改变时,所有依赖对象(观察者)都将得到通知; 使用OOP(面向对象编程)技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系,从而实现软件体系接口的松耦合; 二、程序示例 2.1 使用设计模式前 这里,我们设计一个文件分割的例子,虽然现在用的不多,因为现在的存储介质容量都相对很大,但是作为一个例子...原创 2020-03-11 15:16:45 · 212 阅读 · 0 评论 -
第4节 策略模式
一、 策略模式动机 软件构建中,某些对象算法可能多种多样,经常改变,如果将它们都编码到对象中,会使得对象非常复杂,有时支持不适用的算法也会造成性能负担; 如何在运行时透明地更改对象的算法,将算法与对象本身解耦,从而避免上述问题? 二、策略模式定义( GOF定义) 定义一系列算法,把他们一个个封装起来,并且使他们可互相替换(变化)。该模式使得算法可独立于使用他们的客户程序(稳定)而变化. 三、代...原创 2020-03-11 15:11:28 · 258 阅读 · 0 评论 -
第3节 模板方法模式
一、模式分类 1. 从目的来看 1.1 创建型模式:指创建对象的模式,抽象勒实例化的过程,帮助系统独立于如何创建爱你、组合和表示; 1.2 结构型模式:为解决怎样组装现有类,设计他们的交互方式,而达到一定的功能; 1.3 行为型模式:在不同对象之间划分责任和算法的抽象化,重点关注它们是如何相互租用; 三者的关系 1) 创建模式为其它两种模式的使用提供环境,好比Visual Studio软件提供了...原创 2020-03-11 14:13:23 · 162 阅读 · 0 评论 -
第2节 面向对象设计原则
一、面向对象设计 变化是复用的天敌,OOP设计的最大优势在于抵御变化! 二、重新认识面向对象 理解隔离化:宏观来讲,OOP方式能够将变化所带来的影响减为最小; 各司其职:微观上看,OOP更强调各个类的职责,由于需求的变化导致新增类型不改变原来的实现 对象是什么: 语言层面:封装了代码和数据 规格层面:对象是一系列可被使用的公共接口 概念层面:对象是拥有某些责任或功能的抽象 三、面向对象设计...原创 2020-03-11 14:00:58 · 128 阅读 · 0 评论 -
第1节 设计模式简介
#include <stdio.h> 一、课程目标 理解松耦合的程序设计思想; 掌握面向对象的设计原则; 掌握重构技巧改善代码设计; 掌握GOF核心设计模式 参考教材《设计模式-可复用面向对象软件的基础》 二、从面向对象谈起 底层思维:语言构造、编译转换、内存管理、运行时机制 抽象思维:面向对象(OOP)、组件封装、设计模式、架构模式 三、深入理解面向对象 向下:深入理解面...原创 2020-03-11 11:39:00 · 130 阅读 · 0 评论