常士 发表于 昨天 22:06

面向对象设计原则总结:SOLID/LKP/DRY/KISS…

目录


[*]封装变化
[*]针对接口编程,不针对实现编程
[*]多用组合(has-a),少用继承(is-a)
[*]为交互对象之间的松耦合设计而努力
[*]最少知识原则 LKP / 迪米特法则 Law of Demeter
[*]好莱坞原则
[*]SOLID 原则

[*]单一职责原则 SRP
[*]开放关闭原则 OCP
[*]里氏替代原则 LSP
[*]接口隔离原则 ISP
[*]依赖倒置原则 DIP

[*]DRY 原则
[*]KISS 原则
封装变化

找出应用中需要经常变化的部分,把他们独立出来,改变这部分代码不影响其他部分。这几乎是每个设计模式背后的精神所在,即系统中某部分的改变不影响其他部分。
针对接口编程,不针对实现编程

针对接口编程,关键在于多态。变量/成员/形参的声明应该是抽象类/接口类/父类,即所有的代码操作的都是父类/接口类/抽象类(如 Animal),只会在一处会涉及到具体类(如 Cat 或 Dog),那就是在用 new 实例化具体子类对象时,而这部分代码最好也用工厂封装起来,这样甚至可以在运行时动态实例化不同的子类对象。
针对实现编程
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 面向对象设计原则总结:SOLID/LKP/DRY/KISS…