首页 什么是面向对象?
文章
取消

什么是面向对象?

  万物皆可对象化。

  我经常拿 杯子 这个例子来说明面向对象。

  面向对象的三大特性是 封装 继承 多态

封装

  把客观的事物封装成抽象的类,只有特定类的对象可以访问这一特定类的成员,成员的权限控制分为 公有 (public) 私有 (private) 保护 (protected

  保温() 这个方法是 保温杯 私有的,其他普通杯子无法调用这个方法,也不知道 保温() 的具体实现。

1
保温杯.保温()

继承

  子类 继承 于父类,可以直接调用父类的方法,提高代码复用性。

  陶瓷杯玻璃杯 均继承于父类 杯子杯子 有个公有属性 材质

多态

  多态是同一个行为具有多个不同表现形式或形态的能力。

1
2
陶瓷杯.材质 -> 陶瓷
玻璃杯.材质 -> 玻璃

设计原则

1. 开闭原则(Open Close Principle)

software entities (classes, modules, methods, etc.) Open Closed Principle should be open for extension, but closed for modification.

不改动原有代码的前提下给程序拓展功能,既增加了程序的拓展性,又降低了维护成本。

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

a class should have only one reason to change.

提高代码可读性,便于追踪 bug

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

high level modules should not depend on low level modules; both should depend on abstractions. Abstractions should not depend on details. Details should depend upon abstractions.

通过抽象来搭建框架,建立类和类的关联,以减少类间的耦合性。

4. 接口分离原则(Interface Segregation Principle)

clients should not be forced to depend on methods that they do not use.

不建立庞大臃肿的接口,应尽量细化接口,接口中的方法应该尽量少。

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

subtypes must be substitutable for their base types.

检验继承使用的正确性,约束继承在使用上的泛滥。

6. 最少知道原则(Least Know Principle)

You only ask for objects which you directly need.

降低类与类之间的耦合,减少类与类之间的关联程度,让类与类之间的协作更加直接。

参考文献

Solid Fundamental OOP Principles

面向对象设计的六大设计原则(附 Demo & UML类图) - 掘金

面向对象程序设计 - 维基百科,自由的百科全书

本文由作者按照 CC BY 4.0 进行授权