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相关推荐

  1. No2.大话设计模式学习之策略、装饰、代理模式

    No2.大话设计模式学习之策略.装饰.代理模式 2.设计模式-part1 2.1.策略模式 描述:策略模式(Strategy Pattern)指同系列算法家族,内部都遵从算法家族的接口及方法规范 原则 ...

  2. 大话设计模式学习笔记C++

    一.简单工厂模式 1.面向对象的好处 通过封装.继承.多态把程序的耦合度降低. 用设计模式使得程序更加的灵活,容易修改,并且易于复用. 如实现计算机的功能时,将业务逻辑与界面逻辑分开,让它们的耦合度下 ...

  3. 哈工大软件构造-设计模式学习心得

    设计模式 设计模式,即Design Patterns,是指在软件设计中,被反复使用的一种代码设计经验. 使用设计模式的目的是为了可重用代码,提高代码的可扩展性和可维护性 一:总纲 按照王老师的体系,2 ...

  4. 大话数据结构学习心得

    想重温一下数据结构和算法,选择了大话数据结构这本书. 本书用趣味的方式介绍了数据结构起源.算法设计,线性表.栈与队列.串.树.图.查找.排序.对于当前用高级语言(java,c#,python等)开发的 ...

  5. 大话设计模式学习 C++

    工厂模式 #include "bits/stdc++.h" using namespace std;//基类 进行操作 class Operation { protected:/* ...

  6. 大话设计模式学习笔记(6)——装饰模式

    问题提出 为一个模特穿衣服.要求根据用户的需求能够有不同的装扮.(注意要符合我们的几个原则--依赖倒转,开放闭合,单一职责等). 穿衣过程暴露在外 class Main {public static ...

  7. 大话设计模式学习笔记 -- 装饰模式

    目录 Person类 装饰抽象类 装饰抽象类具体实现类 客户端代码 Person类 public class Person {private String name;public Person(){} ...

  8. 【大话设计模式】设计模式系统学习大合集

    转载请注明出处:http://blog.csdn.net/column/details/designpatternbylmb.html 为了方便各位网友学习以及方便自己复习之用,将设计模式的系列内容按 ...

  9. 《大话设计模式》学习笔记

    睡醒后就拿起<大话设计模式>这本书来看.之前对于设计模式只是一知半解,看了之后感觉受益匪浅. 在此做个小笔记.也强烈建议像我这样的萌新去看看.(很重要.很重要.很重要...) 前言 首先复 ...

最新文章

  1. C语言 | 函数执行成功时,return 1 还是return 0?
  2. Python 分析二手房源信息,揭晓土地交易现状
  3. qml: 自定义滚动条;
  4. gdb对应vc调试命令
  5. python mysql_Python-操作 MySQL
  6. D4 数据分析实例:分析movielens电影数据+pandas核心数据结构
  7. 印象笔记如何与微信连接到服务器,如何保存微信和微博到印象笔记?
  8. po是什么意思java_PO/VO/DAO/BO/POJO是什么(JAVA 的解釋)
  9. Kmeans 算法 收敛
  10. 电信无限流量卡无服务器,电信无限流量卡实测 牟足劲一天刷30GB
  11. 联想y7000笔记如何安装matlab,联想Y7000P笔记本怎样安装win7系统 安装win7系统操作分享...
  12. 计算机网络之『路由器的配置』
  13. 科研热点|2023年IEEE Fellow入选者名单公布,中国学者占比1/4~
  14. bzoj 4585 烟火表演 - 动态规划 - 可并堆
  15. ModuleNotFoundError: No module named ‘suit.apps‘
  16. Fortran不定大小的数组被subroutine调用是否可以?
  17. ISO20000与ISO27001认证如何进行有效整合实施?
  18. 轻量级Transformer模型ConvBERT架构及完整源码实现
  19. 贪心算法之区间取点问题
  20. 数据库设计原则和优化

热门文章

  1. tomcat端口冲突解决 Address already in use: JVM_Bind :8080
  2. python人脸识别环境搭建_怎样用3分钟搭建 Python 人脸识别系统
  3. 实战|简单绕过waf拿下赌博网站
  4. 一次短信验证码攻击的应急响应
  5. git仓库删除文件夹/文件
  6. Hadoop集群日常运维
  7. Android中的消息机制:Handler消息传递机制
  8. 命令行下jq才是JSON 处理利器呀
  9. spark mllib和ml类里面的区别
  10. 机器学习算法实现解析:libFM之libFM的训练过程之SGD的方法