标签:纠正 view 高内聚低耦合 轻松 质量 高内聚 note ali mep
本章面向另一个质量指标:可维护性——软件发生变化时,是否可以以很小的代价适应变化?
本节是宏观介绍:(1)什么是软件维护;(2)可维护性如何度量;(3)实现高可维护性的设计原则——很抽象。
【内聚性】
【耦合性】
更多请参考 王永迪的专栏 浅谈高内聚低耦合
SRP | The Single Responsibility Principle | 单一责任原则 |
OCP | The Open Closed Principle | 开放封闭原则 |
LSP | The Liskov Substitution Principle | 里氏替换原则 |
ISP | The Interface Segregation Principle | 接口分离原则 |
DIP | The Dependency Inversion Principle | 依赖倒置原则 |
【SRP 单一责任原则】
【OCP 开放封闭原则】
1 // Open-Close Principle - Bad example 2 class GraphicEditor { 3 public void drawShape(Shape s) { 4 if (s.m_type==1) 5 drawRectangle(s); 6 else if (s.m_type==2) 7 drawCircle(s); 8 } 9 public void drawCircle(Circle r) 10 {....} 11 public void drawRectangle(Rectangle r) 12 {....} 13 } 14 15 class Shape { int m_type; } 16 class Rectangle extends Shape { Rectangle() { super.m_type=1; } } 17 class Circle extends Shape { Circle() { super.m_type=2; } }
上面代码存在的问题:
改进之后的代码:
// Open-Close Principle - Good example class GraphicEditor { public void drawShape(Shape s) { s.draw(); } } class Shape { abstract void draw(); } class Rectangle extends Shape { public void draw() { // draw the rectangle } }
【LSP 里氏替换原则】
【ISP 接口分离原则】
【DIP 依赖转置原则】
进行抽象改进后:
【SOLID 总结】
标签:纠正 view 高内聚低耦合 轻松 质量 高内聚 note ali mep
原文地址:https://www.cnblogs.com/hithongming/p/9190702.html