一、设计模式概述
GoF 23 种设计模式,加上简单工厂模式,共24种。
使用频率最高:
创建型的有工厂方法模式、抽象工厂模式、单例模式
结构型的有外观模式、适配器模式、代理模式
行为型的有迭代器模式、命令模式、策略模式
学习每个设计模式都应掌握:
这个设计模式的意图是什么,它要解决的什么问题,什么时候使用它(问题、目的);
它是如何解决问题的(解决方案),结构图和关键代码,能联系至少它的两个应用实例,一个生活中的一个软件中的;
这个模式的效果如何,优缺点是什么,在使用时应注意什么(效果)
二、类和类的UML图示
1. UML类图:
(1)类名
(2)属性:成员变量 表示方法: 可见性 名称:类型 [=默认值]
public + , private - , protected #
(3)类的成员函数 可见性 名称(参数列表)[ : 返回类型]
2. 关联关系(实线)
一个类的对象作为另一个类的变量:类A —> 类B , A类含有B类的对象作为变量。
(1)双向关联(—):顾客购买商品并拥有商品,卖出的商品与某个顾客相关联,顾客类与售出品类有双向关联;
(2)单向关联(—>):顾客都有地址
自关联(实线箭头指向自己):节点类型
(3)多重性关联:(0, 1, m, *) .. (1, n, *) *表示任意,m, n表示最多m, n个对象
(4)聚合关系:整体与部分。成员对象是整体对象的一部分,但成员对象可以脱离整体对象独立存在。
带空心菱形的实线直线箭头 ◇—> 汽车类◇—>汽车发动机类
(5)组合关系
也表示整体与部分关系,但是整体对象可以控制成员对象的生命周期,一旦整体不存在,成员也将不存在。带实心菱形的实线直线箭头: 头和嘴巴
3. 依赖关系:特定事物的改变可能会影响到使用该事物的其他事物。
带箭头的虚线:从依赖的一方指向被依赖的一方。
4. 泛化关系:继承关系,父类与子类
带空心箭头的直线,从子类指向超类(或基类)
5. 接口与实现关系
带空心三角形的虚线,从具体实现的一方指向抽象接口
三、面向对象设计原则
简单概括,7种常见的面向对象设计原则
|
设计原则 |
定义 |
使用频率 |
|
单一职责原则 SRP |
一个类只负责一个功能领域的相应职责 |
四星 |
|
开闭原则 OCP |
软件实体应对扩展开放,对修改关闭 |
五星 |
|
里氏代换原则 LSP |
所有引用基类对象的地方能够透明地使用其子类的对象 |
五星 |
|
依赖倒转原则 DIP |
抽象不应该依赖于细节,细节应该依赖于抽象 |
五星 |
|
接口隔离原则 ISP |
使用多个专门的接口,而不使用单一的总接口 |
两星 |
|
合成复用原则 CRP |
尽量使用对象组合,而不是继承来达到复用的目的 |
四星 |
|
迪米特法则 LoD |
一个软件实体应当尽可能少地与其他实体发生相互作用 |
三星 |
10万+

被折叠的 条评论
为什么被折叠?



