开闭原则
- 定义:对扩展开放,对修改关闭;即达到在不修改原有代码,通过新增代码达到扩展功能的目的
- 作用:减少对原有代码的影响,增强稳定性(不影响原有代码)与扩展性
- 实现:找出变化的部分,定义稳定的接口,走不同的实现;当有新的情形时,添加实现即可
依赖导致原则
- 定义:应依赖于接口编程,而不是具体的实现;是开闭原则实现的途径
- 作用:降低耦合(多重实现时,只需引用抽象稳定的接口),增强稳定性(开闭原则的不修改原有代码),提升可维护性(多重实现时,代码清爽了)
- 实现:面向接口编程,当有多种情形时,找出不变的抽象出接口
单一职责
- 定义:一个类有且仅有一个导致它变化的原因
- 作用:代码清晰,因为职责少了,代码就分开了;但可能导致类冗余
- 实现:分析出类的职责,看各职责是否拆分,实际运用中需要控制好粒度,我更宁愿按定义好的边界,让一个类只负责一个功能领域的职责
接口隔离原则
- 定义:为每个类定义适合自己的接口,而不是定义一个大的总的接口
- 作用:相当于接口版的单一职责,降低耦合
- 实现:定义接口时,为不同职责得类分别定义不同的接口
迪米特法则
- 定义:应尽可能少的依赖其他类,和”朋友“(成员变量、方法的输入输出、)通话,
- 作用:降低耦合,提升可维护性
- 实现:不与陌生人(不属于朋友的对象)通话,必要时可创建中间对象(做通话的中转站);但运用时,需要控制粒度
里氏替换原则
- 定义:父类的性质在子类中必须依然成立
- 作用:保证了继承的有效性,降低继承出错的可能(与父类定义的语义不一样),是开闭原则实现的途径
- 实现:继承时,不要覆盖父类方法;方法入参更宽松,出参更严格
合成复用原则
- 定义:复用时优先选择聚合(个体)/组合(整体),其次再考虑继承
- 作用:降低类与类之间耦合,提升复用灵活度
- 实现:将已有对象当做新对象的成员,而不是继承
网友评论