Skip to content

sunhui-blog/OOP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

OOP

use OOP in ES6

Concept&Practise:

  • 对象(Object): 对象代表一个实体的基本构建块。
  • 类(Class): 类是对象的蓝图。
  • 抽象化(Abstraction): 抽象代表现实世界中实体的行为。
  • 封装(Encapsulation): 封装是将数据绑定在一起,并隐藏他们外部世界的机制。(把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。)
  • 继承(Inheritance): 继承是从现有的机制作出新的类。(是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。)
  • 多态性(Polymorphism): 定义的机制来以不同的形式存在。(由继承而产生的相关的不同的类,其对象对同消息做出不同的响应。)

类作为面向对象的基础,着重理解一下类的概念和关系。

Terms(类与类、类与接口):

  • 泛化(Generalization):(即继承)“is-a-kind-of”关系,子类和父类的关系。
  • 组合(Composition):类之间整体与部分的关系("同生共死")。for instance: 车和车轮子
  • 聚合(Aggregation):类之间整体和部分的关系("互不影响")。for instance: 学校和学生
  • 关联(Association):(结构化关系)类之间相联系,一个对象中得到另一个对象。分双向、单向、自关联。通常将一个类的对象作为另一个类的属性。for instance: 我和我的朋友
  • 依赖(Dependency):(使用关系)类一方改变影响到使用该类的一方。通常某个类的方法使用另一个类的对象作为参数。for instance: 人和Mac
  • 实现(Implementation):接口和类之间的关系。类中操作实现了接口声明的操作。

类之间的强弱关系:依赖<关联<聚合<组合<泛化(继承)

Principle:

面向对象开发原则:高内聚(Cohesion)、低耦合(Coupling)。多聚合、少继承

前五个比较重要,SOLDI 指的就是前五个。此内容详见:《敏捷软件开发:原则、模式与实践》

  • SRP 单一职责原则
  • OCP 开放-封闭原则
  • LSP Liskov替换原则
  • DIP 依赖倒置原则
  • ISP 接口隔离原则
  • REP 重用发布等价原则
  • CCP 共同封闭原则
  • CRP 共同重用原则
  • ADP 无环依赖原则
  • SDP 稳定依赖原则
  • SAP 无环抽象原则

About

use OOP in Javascript

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published