最近给所管理的团队培训设计模式,再次阅读了一下阎宏博士的《java与模式》,并且也参阅了jdon上板桥里人对设计模式的一些讲解,还有uml官网上的一些文章,形成了一个文档,贴出来分享一下,请大家指正。对于每一个模式,分为四节:描述、类图&示意代码、举例、比较,首先完成描述、类图&示意代码两节,举例和比较留待项目成员来完成,算是一种实践,随后会选择优秀的文字添加上来,今天上传第一章:设计原则。
1 设计原则
l 开闭原则
n 对扩展开放,对修改关闭
n 对可变性进行封装
n 抽象化是关键
l 里氏代换原则
n 任何基类可以出现的地方,子类一定可以出现
n 对开闭原则的补充
n 违反里氏代换原则,则必然违反开闭原则,反之不一定成立
l 依赖倒转原则
n 要依赖于抽象,不要依赖于实现
n 针对接口编程,不要针对实现编程
n 开闭原则是目标,依赖倒转是手段
l 合成/聚合复用原则
n 少用继承,多用合成/聚合
n 实现开闭原则的必要条件
l 迪米特法则
n 一个软件实体应该与尽可能少的其他实体发生相互作用
n 不会将修改的压力传递到其他模块
n 限制了通信的宽度和深度
n 提高了系统功能的扩展性
n 是一条通向开闭原则的道路
l 接口隔离原则
n 为客户端提供尽可能小的单独的接口,不要提供大的总的接口
n 限制的是通讯的宽度
n 不会讲修改的压力传递到其他的对象