设计模式 基础
参考的书籍是设计模式的艺术-软件开发人员的内功修炼之道
.
原书是 java,我用 c++的例子好了.
设计模式是以面向对象
的程序设计为基础,但更多是服务于软件设计的框架,个人觉得也可脱离面向对象,也可以作为一种设计哲学,存在任何形式的软件里.
不要滥用,用的不好的设计模式,还不如不用.
尽量记录要点.
对象的关系,对应 uml 类图
- 关联,聚合,组合
就是包含关系, has-a
关联,单向关联,双向关联,自关联,多重关联.
多重关联的例子,一个 form 关联多个 button, 但是每个 button 对应一个 form
聚合其实和关联相似,强调的是成员对象作为整体对象的一部分,也可以脱离整体对象存在
一般就是对象(整体)setter 进来的成员对象.
组合强调的是整体对象可以控制成员对象的生命周期
,即 new 出来的成员对象,注意和 setter 的区别
- 依赖
某对象的方法里以另外一个对象为参数;
某对象方法里使用了另外对象的局部对象;
某对象调用其他对象的静态方法;
某对象返回一个其他对象;
- 泛化(继承)
就是继承关系, is-a
- 实现关系
指的某个 interface 和其实现的主体之间的关系,感觉也算是继承关系里.
interface 只有方法,莫有成员变量.
面向对象的设计原则
每一个都很重要,细细体会.