您的位置:首页 > 其它

面向对象设计原则

2016-08-21 07:52 295 查看
最近在重构老系统的代码,感觉有些疑惑,故重新看了《敏捷开发软件开发:原则、模式和实践》,记录一下。

面向对象设计要遵守下面几个原则:

类单一职责原则(SPR)

每个类承担的职责应该单一,实现高内聚。如果这个类承担太多,那么它变动的可能性很大,因为有太多原因导致这个类变化。就一个类而言,应该仅有一个引起它变化的原因。任何在设计类的时候,都需要考虑到这个类的职责,即这个类的边界。这提示我们,在设计系统或者模块的时候,都要考虑各自的边界。如今在微服务流行的时代,同样能看到该原则的身影。记着职责!边界!

开放-封闭原则(OCP)

对修改是封闭的,对扩展是开放的。这是面向对象设计最为核心的原则。通过封装变化,抽象出接口,就可以在不用修改原有代码的基础上,通过扩展接口,增加新功能。这需要我们预测变为,通过接口隔离变化。

Liskov替换原则(LSP)

根据该原则,子类必须能够替换掉它们的基类,也就是说使用基类的方法或函数能够顺利地引用子类对象。LSP原则与单一职责原则和接口分离原则密切相关,如果一个类比子类具备更多功能,很有可能某些功能会失效,这就违反了LSP原则。为了遵循该设计原则,派生类或子类必须增强功能。

依赖倒置原则(DIP)

高层模块不应该依赖于底层模块,二者都应该依赖于抽象。抽象不依赖于细节,细节应该依赖于抽象。这也是Spring设计的核心思想。

接口隔离原则(ISP)

不应该强迫客户依赖于他们不用的方法。这个原则用来处理胖接口。给我们启发是对接口分组,分离接口,不要污染接口。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息