1. 将代码中变化的部分和不变的部分分离开来
这样,可以在需求变化时,改动变化的部分而不影响不变的部分。
2. 针对接口编程,而不是针对实现编程
接口灵活,方便扩展,避免因为依赖实现,被绑死。
3. 多用组合,少用继承
把属性或行为抽取出来,可以灵活组合,弹性强。
4. 高内聚,低耦合
增加系统弹性,降低相互之间的依赖关系。避免牵一发动全身。
5. 类应该对扩展开放,对修改关闭
简单来说,就是在不修改原代码的条件下完成扩展。
6. 依赖倒置原则
即:依赖抽象,不要依赖具体类
7. 最少知识原则
不要让太多类耦合在一起,避免修改系统中某部分影响其它部分。外观模式就是典型代表。
8. 好莱坞原则
“别打电话给我,需要的话我会打给你!”,牛逼的人都是这么说话的。把决策权放在高层模块中,以便决定何时调用低层模块。
9. 单一责任
一个类只做一个事情,每个类各司其职,当有一件事情需要变更时,不会影响到其它的。就是高内聚。
10. 善用模式
不要滥用,有时候基本的 OO 原则就能很好的解决问题,决不能为了使用模式而使用模式,需要考虑是否有意义,衡量利弊。
网友评论