美文网首页设计模式
设计模式 Day02 面向对象设计的七大原则

设计模式 Day02 面向对象设计的七大原则

作者: 望穿秋水小作坊 | 来源:发表于2021-03-13 09:01 被阅读0次
1. 七大原则是哪七个?

① 单一职责原则
② 开闭原则
③ 里氏代换原则
④ 依赖倒转原则
⑤ 接口隔离原则
⑥ 组合复用原则
⑦ 迪米特法则

image.png
2. 面向对象设计的目标是什么(说两方面)?
  • 可维护性
  • 可复用性
image.png
3. 简述:你对单一职责原则的理解?并举一个不符合的例子,对其进行改造。
  • 单一职责原则:一个对象应该只包含单一职责,并且该职责被完整地封装在一个类中。
  • 例子:一个类有①连接数据库的功能 ②查询数据的功能 ③展示数据的功能;这个类就不符合单一职责原则,可能引起它改变的外因有①数据库类型改变了②查询方式改变了③展示数据的方式改变了。
  • 改造:将上述三个功能,分别封装到三个类中,就符合单一职责原则。
image.png image.png
4. 简述:你对开闭原则的理解?举一个例子
  • 开闭原则:对扩展开发,对修改关闭
  • 例子:一个数据库操作类,直接面向 MYSQL 连接的类实例编程;
  • 改造:上述数据库操作类,如果需要更换成 Oracle 数据,就需要修改源代码,不符合开闭原则;应该面向抽象编程。
image.png image.png
5. 简述:你对里氏代换原则的理解?并举例说明
  • 里氏代换原则:在所有引用基类的地方必须能够透明地使用其子类对象
  • 比如:我喜欢动物,代表我喜欢狗;反过来,我说我喜欢狗,不代表我喜欢所有动物
image.png
6. 简述:你对依赖倒转原则的理解?并举例
  • 依赖倒转原则:高潮模块不应该依赖于低层模块,他们都应该依赖抽象。抽象应该依赖于细节,细节应该依赖抽象。

  • 里氏代换原则是基础,依赖倒转原则是手段,开闭原则是目标

  • 例子:当我们需要连接数据库时,不应该对面 Mysql 连接类编程,而应该面对抽象数据库类编程

image.png image.png
7. 简述:你对接口隔离原则的理解?不举例
  • 接口隔离原则:客户端不应该依赖那些不需要的接口。
image.png image.png
8. 简述:你对合成复用原则的理解?理解分析中的每句话?并举例
  • 合成复用原则:优先使用对象组合,而不是继承来达到复用的目的。

  • 例子:有一个用户列表管理类,它不应该去继承自 ArrayList,应该使用组合复用的方式,将 ArrayList 当成成员变量。

image.png
  • 分析如下:每句话理解一下
image.png
9. 简述:你对迪米特法则的理解?并举例
  • 迪米特法则:每一个软件单位对其他的单位都只有最少知识。换句话说:适当的引入中间类,来降低原来系统的耦合度。
  • 例子:中介者模式就是迪米特法则的最佳例子。
image.png image.png

相关文章

  • 设计模式 - 七大设计原则(一)

    设计模式 - 七大设计原则(一) 概述 简单介绍一下七大设计原则:开闭原则:是所有面向对象设计的核心,对扩展开放,...

  • 面向对象设计原则

    面向对象设计原则 面向对象设计原则是设计模式的基础,每个设计模式都符合一一种或多种面向对象的设计原则。 常用的面向...

  • 设计模式七大原则

    面向对象七大设计原则,以及使用到这些原则的设计模式 1.合成/聚合复用原则(CARP) (有些地方,不将其列入设计...

  • 面向对象的七大设计原则

    面向对象的七大设计原则文章目录面向对象的七大设计原则简述七大原则之间的关系一、开闭原则(The Open-Clos...

  • 设计模式实践

    工厂模式 策略模式 状态模式 责任链模式 代理模式 单例模式 适配器模式 设计模式原则 面向对象的设计模式有七大基...

  • 面向对象:6大原则、24种设计模式

    接上一篇:面向对象介绍 为什么要学设计原则、设计模式? 若不学好经典设计模式,和通过设计模式理解面向对象的原则,你...

  • 2020顺F面经

    1、线程池的设计里体现了什么设计模式享元模式2、说说你了解什么设计模式,知道责任链设计模式吗面向对象七大原则:单一...

  • 设计模式的原则

    面向对象的原则是面向对象的目标,而设计模式是为了实现这些原则的手段和方法。这也就是为什么要有设计模式。 面向对象的...

  • Swift设计模式----目录

    面向对象设计原则: 开闭原则 单一职责原则 依赖倒置原则 接口分离原则 迪米特法则 里氏替换原则 面向对象设计模式...

  • 设计模式

    1 软件设计原则和设计模式概览 1.1 面向对象设计原则 1.2 GOF设计模式 1.3 C嵌入式编程设计模式 ...

网友评论

    本文标题:设计模式 Day02 面向对象设计的七大原则

    本文链接:https://www.haomeiwen.com/subject/dratcltx.html