UML类间关系、七大软件设计原则非常重要但又容易混淆,鉴于文字描述略有晦涩,整理了一份解释UML中类间关系、七大设计原则的图
别问为什么要把类间关系、设计原则写在同一篇文章里,因为它们的关系很紧密,涉及到类图、涉及到代码就一定会有类间关系,看图前先要熟悉类间关系才能更好的看图
下边就看一不一目了然吧
类间关系:
-----------------------------------------
七大设计原则:
一、SingleResponsibility Principle,单一职责原则:一个类应该只负责一项职责
~类方法数量足够少时可在方法级别保持单一职责
二、Open Closed Principle,开闭原则:模块和函数对扩展方开放,对使用方关闭;扩展后不用改使用方的代码
~尽量通过扩展而不是修改来实现变化
三、Liskov Substitution Principle,里氏替换:所有引用基类的地方必须能透明地使用其子类的对象
~无差异调用基类、子类方法,即子类尽量别重写父类方法;实现途径如下:
子类提升到和父类同级,共同继承/实现更高一级的抽象
四、Interface Segregation Principle,接口隔离原则:一个类对另一个类的依赖应该建立在最小接口上
~一个类通过接口只用到另一个类的一部分方法,用不到接口的所有方法,应该拆分接口
五、Dependence Inversion Principle,依赖倒转(置)原则:高层模块不应该依赖底层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象
~一个类作为一个方法的参数,把这个类参数换成它的接口或父类
六、Demeter Principle,迪米特法则:一个对象对其它对象保持最少的了解
~只与直接朋友通信,直接朋友:类以成员变量、方法参数、方法返回值方式出现在另一个类中
七、Composite Reuse Principle,合成复用原则:尽量使用合成/聚合的方式,而不是使用继承
~以下三种方案均可: