设计模式
从一而终
这个作者很懒,什么都没留下…
展开
-
结构化设计的概要与原理--模块化
技术一般 不会贴图 原谅!!!怎样做好软件开发过程中的模块化是一个值得思考的问题。在思考这个问题之前,我曾做了当前工作中的项目代码部分重构,我自己给自己定的重构原则是,按照职责单一来划分模块。在函数拆分中将功能能构独立出来的代码行拆分成一个函数封装成一个接口。在没有见到上图之前,我没有觉得自己哪里不对,但是上图引发了我的一个思考,我的拆分原则有没有问题,按照书面知识看似毫无破绽,面向对象的设计原则其中一条讲的就是单一职责原则。但是事务总是在带来好处的地方也带来负面效应,过度的拆分导致模块...原创 2021-07-05 22:10:19 · 470 阅读 · 0 评论 -
重构的关键技法
静态 --> 动态早绑定 --> 晚绑定继承 --> 组合编译时依赖 --> 运行时依赖紧耦合 --> 松耦合原创 2021-10-24 12:49:10 · 88 阅读 · 0 评论 -
设计模式----策略模式
1.策略:针对某种问题给出的解决方案。2.场景:去上班交通工具选择策略:驾车,骑自行车,步行 三种不同策略,我们可以分别实现三种策略class 驾车{}class 骑行{}class 步行{}上述代码分别实现了三种策略,我们在客户端只需要根据自己的选择,选择一种策略即可。3.上述结构侧问题,我们之前在设计模式总体理解中有说过软件设计的需求会随着时间的推移而变化,假如我们在以后日子里要增加 爬行 的方式上班,这是应该怎么加?4.增加模块,这个问题设计模式总体理解原创 2021-07-09 06:37:16 · 51 阅读 · 0 评论 -
设计模式----模板方法
1 什么是模板方法? 模板方法即强调----模板,那么什么是模板,是指作图或设计方案的固定格式。方法就是一个动作,模板方法:就是一个或一套固定的流程或动作。void 早晨起床收拾(){ // step1 拉屎(); // step2 洗脸(); //step3 吃饭()}我们定义了一套起床流程 step1拉屎 step2洗脸 step3吃饭。在这个流程中我们必须找到变化点和稳定点: 稳定点:起床收拾的流程是稳定的 变化...原创 2021-07-08 06:00:07 · 106 阅读 · 0 评论 -
设计模式总体理解
1.怎样理解设计模式,设计的模式得功能是什么,我们为什么需要设计模式。2. 首先说下软件设计的一个硬性问题----随着时间推移需求在不断发生变化。3. 那么设计模式随之而生,设计模式得功能----抵御变化,或者说是封装变化。4. 那么为什么要封装变化,变化意味着要对已有的模块进行改动来适应,那么改动必将破坏一个 规则----复用。5. 什么是复用,编译过程中对已有并且已编译的模块不再进行二次编译,即原有的模块被复用, 那么对原有模块进行改动必将引起重新编译,也不符合增量编译...原创 2021-07-06 20:28:54 · 333 阅读 · 0 评论 -
C++ 组合模式
// Composit.h #pragma once//组合模式#include <iostream>#include <string>#include <list>// Entry 抽象类:共同特质class Entry{public: virtual std::string getName() const = 0; virtual int getSize() const = 0; virtual void pr...原创 2020-07-11 23:35:58 · 154 阅读 · 0 评论 -
组合模式的安全模式与透明模式
转载自树形结构的处理——组合模式(四)1 透明组合模式与安全组合模式 通过引入组合模式,Sunny公司设计的杀毒软件具有良好的可扩展性,在增加新的文件类型时,无须修改现有类库代码,只需增加一个新的文件类作为AbstractFile类的子类即可,但是由于在AbstractFile中声明了大量用于管理和访问成员构件的方法,例如add()、remove()等方法,我们不得不在新增的文件类中实现这些方法,提供对应的错误提示和异常处理。为了简化代码,我们有以下两个解决方案:...转载 2020-07-11 08:39:28 · 1984 阅读 · 0 评论 -
设计模式之双分派单分派多分派
在《GoF 23种设计模式模式解析附C++实现源码》和《设计模式解析之—Visitor模式》中,我给出了Visitor模式的诠释和示例实现源码。个人觉得例子和解析还是能够比较清晰地为学习和掌握Visitor模式提供一些信息,但是对于其中的一个重要知识没有很好地解释,这就是multi-dispatch(多分派),multi-dispatch(多分派)是Visitor模式的关键,实际上Visitor模式就是提供了一种multi-dispatch(多分派)中的double dispatch(双分派)的...转载 2020-07-11 07:44:47 · 406 阅读 · 0 评论