面向对象设计的3个基本特征和5个原则

2019-02-25  本文已影响9人  爱吃鱼的小灰

参考文章

面向对象的基本特征

封装

这样就在确保正常交互的前提下,保证了安全性.

继承

  • 实现继承是指直接使用基类的属性和方法而无需额外编码的能力
  • 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力

多态

a:要有继承关系。
b:要有方法重写。
c:要有父类引用指向子类对象。

a:提高了代码的维护性(继承保证)
b:提高了代码的扩展性(由多态保证)

不能使用子类的特有属性和行为。

五大基本原则

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

是指一个类的功能要单一,不能包罗万象。

开放封闭原则OCP(Open-Close Principle)

一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的。

这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。

替换原则(the Liskov Substitution Principle LSP)

子类应当可以替换父类并出现在父类能够出现的任何地方。

比如:公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,也不管是总部员工还是外派员工,都应当可以参加抽奖,否则这公司就不和谐了。

依赖原则(the Dependency Inversion Principle DIP)

具体依赖抽象,上层依赖下层。

假设B是较A低的模块,但B需要使用到A的功能,这个时候,B不应当直接使用A中的具体类: 而应当由B定义一抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口:  这样就达到了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。

通过上层模块难以避免依赖下层模块,假如B也直接依赖A的实现,那么就可能造成循环依赖。

接口分离原则(the Interface Segregation Principle ISP)

模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来

上一篇 下一篇

猜你喜欢

热点阅读