架构师训练营 - 第二周总结

用户头像
坂田吴奇隆
关注
发布于: 2020 年 06 月 17 日
架构师训练营-第二周总结
  1. 什么是面向对象编程?面向编程的三大特性?

  • 面向对象编程:

面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 。

  • 面向对象的三大特性:封装、继承、多态。

封装用于隐藏接口的实现细节,继承表示的是对象与对象之间的is-a关系,过度使用继承,继承层次过深过复杂,就会导致代码可读性、可维护性变差。所以一般推荐在实际应用当中使用组合,即has-a关系。多态指的是子类可以替换父类,从而做到运行时传入不同的子类,调用不同的子类方法。多态特性能提高代码的可扩展性和复用性。

  1. 面向对象设计:充血模型和贫血模型?DDD领域设计?

  • 贫血模型:将数据和业务逻辑分割在不同的类中。

  • 充血模型:将数据和业务逻辑封装在同一类中。

  • 领域驱动设计,即 DDD,主要是用来指导如何解耦业务系统,划分业务模块,定义业务领域模型及其交互。

  1. 面向对象设计的目的:高内聚、松耦合

  • 易拓展

  • 更强壮

  • 可移植

  • 更简单

  1. SOLID 设计模式的六大原则有:

  • Single Responsibility Principle:单一职责原则

一个类或者模块只负责完成一个职责(或者功能). 单一职责原则是为了实现代码高内聚、低耦合,提高代码的复用性、可读性、可维护性。

  • Open Closed Principle:开闭原则

软件实体(模块、类、方法等)应该“对扩展开放、对修改关闭”. 添加一个新的功能,应该是通过在已有代码基础上扩展代码(新增模块、类、方法、属性等),而非修改已有代码(修改模块、类、方法、属性等)的方式来完成

  • Liskov Substitution Principle:里氏替换原则

子类对象(object of subtype/derived class)能够替换程序(program)中父类对象(object of base/parent class)出现的任何地方,并且保证原来程序的逻辑行为(behavior)不变及正确性不被破坏。

  • Law of Demeter:迪米特法则

不该有直接依赖关系的类之间,不要有依赖;有依赖关系的类之间,尽量只依赖必要的接口. 迪米特法则是希望减少类之间的耦合,让类越独立越好。每个类都应该少了解系统的其他部分。一旦发生变化,需要了解这一变化的类就会比较少.

  • Interface Segregation Principle:接口隔离原则

客户端不应该被强迫依赖它不需要的接口.

如果把“接口”理解为一组接口集合,可以是某个微服务的接口,也可以是某个类库的接口等。如果部分接口只被部分调用者使用,我们就需要将这部分接口隔离出来,单独给这部分调用者使用,而不强迫其他调用者也依赖这部分不会被用到的接口。

如果把“接口”理解为单个 API 接口或函数,部分调用者只需要函数中的部分功能,那我们就需要把函数拆分成粒度更细的多个函数,让调用者只依赖它需要的那个细粒度函数。

如果把“接口”理解为 OOP 中的接口,也可以理解为面向对象编程语言中的接口语法。那接口的设计要尽量单一,不要让接口的实现类和调用者,依赖不需要的接口函数。



用户头像

坂田吴奇隆

关注

还未添加个人签名 2019.01.06 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-第二周总结