随笔分类 - 设计模式/设计原则
摘要:观察者模式 主体(被观察者)通知一个或多个观察者状态改变/数据更新/事件发生。 描述 C++ 实现观察者模式有几个要点: 观察者都有一个共同的抽象基类 Listener,定义了一个纯虚接口 OnNotified(),主体调用该接口通知观察者 每个观察者 ConcreteListener 继承自抽象基
阅读全文
摘要:《Head First 设计模式》是一本好书,正如书的封面上说的那样,这是一本**重视大脑的学习指南**。里面提到了一些学习方法,可以尝试下,看看哪些对你有用: ### 1. 慢一点,理解的越多,需要记得就越少 不要走马观花地看。停下来,好好想一想。面对书中提出的问题,不要急着翻答案。大脑想得越深,
阅读全文
摘要:## 目录 - 封装变化 - 针对接口编程,不针对实现编程 - 多用组合(has-a),少用继承(is-a) - 为交互对象之间的松耦合设计而努力 - 最少知识原则 LKP / 迪米特法则 Law of Demeter - 好莱坞原则 - SOLID 原则 - 单一职责原则 SRP - 开放关闭原则
阅读全文
摘要:单例模式是设计模式中最简单、常见的一种。其主要目的是确保整个进程中,只有一个类的实例,并且提供一个统一的访问接口。常用于 Logger 类、通信接口类、线程池等。 # 基本原理 限制用户直接访问类的构造函数,提供一个统一的 public 接口获取单例对象。 这里有一个“先有鸡还是先有蛋”的问题: -
阅读全文
摘要:DRAFT 梳理下我的技能树,要学的太多,学无止境
阅读全文
摘要:单例模式有很多种实现: 懒汉/饿汉 非线程安全 线程安全 每次判空加锁(效率不高) DCL:Double-check lock(繁琐,C++11 之前的最佳实现) Meyers’ singleton:静态变量(简洁,C++11 之后的最佳实践) C++11 规范保证了局部 static 对象的线程安
阅读全文
摘要:面向对象特性 抽象、 封装、继承、多态 面向对象设计原则 一般设计原则 摘自《Head First 设计模式》 封装变化 多用组合,少用继承:has-a 比 is-a 更灵活,可运行时改变行为/属性 针对接口编程,不针对实现编程:变量声明为超类型(接口/抽象类) 为交互对象之间的松耦合设计而努力(例
阅读全文