面向对象设计原则

三大特性:封装、继承、多态

五大设计原则:单一职责原则(SRP)、开闭原则(OCP)、依赖倒置原则(DIP)、接口隔离原则(ISP)、里氏替换原则(LSP)

 

1. 单一职责原则(SRP)(Single Responsibility Principle)

(1)一个类,最好只做一件事,只有一个引起它变化的原因。

(2)低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。

(3)通常意义下的单一职责,就是指只有一种单一功能,不要为类实现过多的功能点,以保证实体只有一个引起它变化的原因。

2. 开闭原则(OCP)(Open-Closed Principle)

(1)面向对象所有原则的核心:对扩展开放,对修改封闭。

(2)对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着需求未改变的类一旦设计完成,就可以独立完成其工作,而不对其进行任何修改。

(3)实现开闭原则的核心思想就是对抽象编程,而不对具体实现编程。

(4)让类依赖于固定的抽象,所以修改就是封闭的;而通过面向对象的继承和多态机制,又可以实现对抽象类的继承,通过重写其方法来改变固有行为,实现新的方法,所以对扩展是开放的。

3. 依赖倒置原则(DIP)(the Dependency Inversion Principle)

(1)核心思想是:抽象不依赖于细节,而细节依赖于抽象。

(2)传统结构化编程中,高层的模块通常都要依赖低层的子模块来实现,也称为高层依赖低层。依赖倒置原则就是要逆转这种依赖关系,让高层模块不依赖低层模块。

(3)依赖于抽象,就是要对接口编程,不要对实现编程。

4. 接口隔离原则(ISP)(the Interface Segregation Principle)

(1)核心思想是:使用多个小的专门的接口,而不要使用一个大的通用接口。

(2)一个类对另外一个类的依赖应该建立在最小的接口上,不应被迫依赖根本不用的方法。

(3)为了减少接口的定义,将许多类似的方法都放在一个接口中(维护和实现接口的时候需要花费太多精力)

(4)接口定义的操作相当于对客户端的一种承诺,承诺当然是越少越好,越精练越好,过多的承诺带来的就是大量精力和时间去维护。

5. 里氏替换原则(LSP)(the Liskov Substitution Principle)

(1)核心思想是:子类可以替换父类并且出现在父类能够出现的任何地方。

(2)在这个原则中父类应尽可能使用接口或者抽象类来实现。

(3)将公共部分抽象为基接口或抽象类,在子类中通过重写父类的方法实现新的方式支持同样的职责。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值