常用的面向对象设计原则包括7个,这些原则并不是独立存在的,他们是相互依赖,相互补充。
如下表:
设计原则名称 | 设计原则简介 |
单一职责原则(SRP) | 类的职责要单一,不能将太多的职责放在一个同一个类中 |
开闭原则(OCP) | 软件体系对扩展是开放的,但对修改是关闭的,即在不修改软件实体的基础上去扩展其功能 |
里氏代换原则(LSP) | 在软件系统中,一个可以接受基类对象的地方必然可以接受一个子类对象 |
依赖倒转原则(DIP) | 要针对抽象层编程,不要针对具体类编程 |
接口隔离原则(ISP) | 使用多个专门的接口来取代一个统一的接口 |
合成复用原则(CRP) | 在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚至不适用继承关系 |
迪米特法则(LoD) | 一个软件实体对其他实体的引用越少越好,或者说如果两个类不必彼此直接通信,那么这两个类不应该发生直接的相互作用,而是通过引入一个第三者间接交互 |
当时,学习的时候不了解其深意,当了几年程序猿之后,重新翻阅教材,发人深省,其实无论是学习的框架,还是编写的代码,一直贯穿了这七个常用的面向对象设计原则。从前或许是习惯了一种或几种编码模式,但为什么如此编写,重不去深思,凭感觉应该如此写,如今,却感觉水到渠成,发现这些原则都很熟悉,而我也应该这样编写代码。
后续,我也会详细复习面向对象设计原则,与及设计模式23种设计模式。同时,会分享这几年的 开发经验。