设计模式简化记忆
Posted henreash
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式简化记忆相关的知识,希望对你有一定的参考价值。
1、设计7大法则
类与接口要单一,(职责功能单一原则)
接口过大需隔离。(接口隔离,依赖最小接口)
面向接口做设计,(依赖反转,面向接口设计)
聚合组合写类里。(里氏替换,过多的继承重写,导致里氏替换法则被破坏,多采用组合聚合)
扩展不改实现块,(开闭法则,新增功能不能去修改已有实现)
开闭法则牢牢记。(开闭法则是7大法则的核心)
固定问题用模式,(设计过程中预测到可能发生的变化,早做规划,将稳定功能和易变功能区别对待)
系统变化早处理。
2、uml类图
参数返回叫依赖,(做类的成员函数参数和返回值的其他类,构成了依赖关系)
实线箭头互相连。
外来成员是聚合,(做类的成员,而且是三方负责实例化的,叫聚合)
空心菱形加实线。
自建成员为组合,(做类的成员,内自实例化的,叫组合)
菱形变成黑色块。
聚合组合是依赖,(聚合、组合都是依赖的特例)
优先使用解耦合。(优先使用聚合组合,减少继承)
3、设计模式
用一个类根据条件创建其他类----简单工厂
将简单工厂模式中的工厂类抽象出来,实现多态----工厂模式
工厂的子类出产不同品牌的同类产品----抽象工厂(如海尔生产海尔冰箱、海尔洗衣机;美的生产美的冰箱、美的洗衣机)
建造者的子类构造不同的复杂对象,给使用者使用----构造者模式
让类全局只有一个实例----单例模式(当然全局只能有两个实例,也算单例的特例,注意线程安全的实现方式)
把接口转换为适应当前系统要求----适配器
对象可多维度变化----桥接(绘制圆形、矩形、三角形,可自由选择红、蓝、绿色)
动态增加功能----装饰者(如日志、性能跟踪、权限等)
多个对象对外提供统一接口----外观
对象实例重用----享元
通过代理控制原对象----代理(如webservice的客户端接口)
发送者接收者解耦----命令模式
封装对象间复杂的交互,让对象间解耦----中介者
对象状态变化通知多个其他对象----观察者
内部对象改变时行为也改变,将行为在状态对象中实现----状态模式
多个算法,封装为可相互替换的对象----策略模式
以上是关于设计模式简化记忆的主要内容,如果未能解决你的问题,请参考以下文章
特例模式(Special Case Pattern)与空对象模式(Null Pointer Pattern)—— 返回特例对象而非 null