大话设计模式学习心得2
1.迪米特法则
类之间的联系越少越好,
2.外观模式
添加一个新的类,包含子类,实现不同的组合,降低与外界的耦合,对旧代码的更新可以适用。
3.建造者模式
和外观模式有些类似吧,实现子类的各种不同的组合,也就是在内部实现接口调用顺序,而在外界只需调用具体的接口。
4.观察者模式
一个类A是观察者类,另一个类B是通知者类,B中调用A的接口,A中有B的通知号,其实耦合度还是很高的,只是有一个事件来到时,B主动调用注册A注册在B中的方法,A的方法里会显示调到B的通知,但其实也可以不调,这个没什么影响。在网络协议中就类似于订阅。缺点在于只能调用固定的方法。
5.事件委托
这个的实现是,通知者类有一个函数指针数组,可以指向任意的观察者类注册进来的函数,然后有事件来到时,调用各个接口。实现可以调用不同类的不同函数名称。但这一点在C++中较难实现,因为类中的函数带有this指针,查阅网上各位网友的实现,我觉得都违背了迪米特原则,类之间的耦合度太高,所以不如直接采用观察者模式,加上建造者模式,实现不同通知调用不同类的接口,至少可以使代码清晰,效率更高,但是代码量大大提高,而且灵活度不高。
转载于:https://www.cnblogs.com/leo0000/p/5001642.html
大话设计模式学习心得2相关推荐
- No2.大话设计模式学习之策略、装饰、代理模式
No2.大话设计模式学习之策略.装饰.代理模式 2.设计模式-part1 2.1.策略模式 描述:策略模式(Strategy Pattern)指同系列算法家族,内部都遵从算法家族的接口及方法规范 原则 ...
- 大话设计模式学习笔记C++
一.简单工厂模式 1.面向对象的好处 通过封装.继承.多态把程序的耦合度降低. 用设计模式使得程序更加的灵活,容易修改,并且易于复用. 如实现计算机的功能时,将业务逻辑与界面逻辑分开,让它们的耦合度下 ...
- 哈工大软件构造-设计模式学习心得
设计模式 设计模式,即Design Patterns,是指在软件设计中,被反复使用的一种代码设计经验. 使用设计模式的目的是为了可重用代码,提高代码的可扩展性和可维护性 一:总纲 按照王老师的体系,2 ...
- 大话数据结构学习心得
想重温一下数据结构和算法,选择了大话数据结构这本书. 本书用趣味的方式介绍了数据结构起源.算法设计,线性表.栈与队列.串.树.图.查找.排序.对于当前用高级语言(java,c#,python等)开发的 ...
- 大话设计模式学习 C++
工厂模式 #include "bits/stdc++.h" using namespace std;//基类 进行操作 class Operation { protected:/* ...
- 大话设计模式学习笔记(6)——装饰模式
问题提出 为一个模特穿衣服.要求根据用户的需求能够有不同的装扮.(注意要符合我们的几个原则--依赖倒转,开放闭合,单一职责等). 穿衣过程暴露在外 class Main {public static ...
- 大话设计模式学习笔记 -- 装饰模式
目录 Person类 装饰抽象类 装饰抽象类具体实现类 客户端代码 Person类 public class Person {private String name;public Person(){} ...
- 【大话设计模式】设计模式系统学习大合集
转载请注明出处:http://blog.csdn.net/column/details/designpatternbylmb.html 为了方便各位网友学习以及方便自己复习之用,将设计模式的系列内容按 ...
- 《大话设计模式》学习笔记
睡醒后就拿起<大话设计模式>这本书来看.之前对于设计模式只是一知半解,看了之后感觉受益匪浅. 在此做个小笔记.也强烈建议像我这样的萌新去看看.(很重要.很重要.很重要...) 前言 首先复 ...
最新文章
- C语言 | 函数执行成功时,return 1 还是return 0?
- Python 分析二手房源信息,揭晓土地交易现状
- qml: 自定义滚动条;
- gdb对应vc调试命令
- python mysql_Python-操作 MySQL
- D4 数据分析实例:分析movielens电影数据+pandas核心数据结构
- 印象笔记如何与微信连接到服务器,如何保存微信和微博到印象笔记?
- po是什么意思java_PO/VO/DAO/BO/POJO是什么(JAVA 的解釋)
- Kmeans 算法 收敛
- 电信无限流量卡无服务器,电信无限流量卡实测 牟足劲一天刷30GB
- 联想y7000笔记如何安装matlab,联想Y7000P笔记本怎样安装win7系统 安装win7系统操作分享...
- 计算机网络之『路由器的配置』
- 科研热点|2023年IEEE Fellow入选者名单公布,中国学者占比1/4~
- bzoj 4585 烟火表演 - 动态规划 - 可并堆
- ModuleNotFoundError: No module named ‘suit.apps‘
- Fortran不定大小的数组被subroutine调用是否可以?
- ISO20000与ISO27001认证如何进行有效整合实施?
- 轻量级Transformer模型ConvBERT架构及完整源码实现
- 贪心算法之区间取点问题
- 数据库设计原则和优化