dart设计模式之六大原则

简介: 这是我参与8月更文挑战的第 10 天,活动详情查看:8月更文挑战。为应掘金的八月更文挑战,设计模式参考 模式分析,模式难点,模式解决问题,优点,缺点,模式应用场景,模式代码(基于dart)

这是我参与8月更文挑战的第 10 天,活动详情查看:8月更文挑战。为应掘金的八月更文挑战

设计模式

参考 模式分析,模式难点,模式解决问题,优点,缺点,模式应用场景,模式代码(基于dart)

六大原则

开闭原则(Open-Closed-Principle)

核心:一个软件实体应当对拓展开放,对修改关闭。即:软件实体应尽量在不修改原有代码的情况下进行拓展。

里氏代换原则(Liskow-Substitution-Principle)

核心:所有引用基类(父类)的地方,都必须能透明地使用其子类的对象。

一个软件实体如果使用的是一个父类,那么一定适用于其子类,而且他察觉不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。简单地说,子类必须能够替换掉它们的父类型。

依赖倒转原则(Dependency-Inversion-Principle)

核心: 抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而非针对实现编程。

思想: 抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。依赖倒转其实可以说是面向对象设计的标志,用哪种语言来编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即 程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之就是面向过程化设计了。

原则:

  1. 高层模块不应该依赖于低层模块。两个都应该依赖于抽象。
  2. 抽象不应该依赖细节。细节应该依赖于抽象。

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

核心:一个类只负责一个功能领域中相应的职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。

思想:如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。【Eg:游戏的界面组成与逻辑组成分离】

接口隔离原则(Interface-Segregation-Principle)

核心:使用多个专门的接口,而不使用单一的总接口。即 客户端不应该依赖于那些它不需要的接口。

迪米特法则(Law-Of-Demeter)

核心:一个软件实体应当尽可能少地与其他实体发生作用。(无熟人难办事)

思想:也叫最少知识原则。如果两个类不彼此通信,那么这两个类就不应当直接地发生相互作用。如果其中一个类需要另一个类的某一个方法的话,可以通过第三者转发这个调用。(不要和陌生人说话)

原则: 在迪米特法则中,对于一个对象,其朋友包括如下几类:

  1. 当前对象 this
  2. 以参数形式传入到当前对象方法中的对象
  3. 当前对象的成员对象
  4. 若当前对象的成员你对象是一个集合,那么集合中的对象也都是朋友
  5. 当前对象所创建的对象



相关文章
|
29天前
|
设计模式
设计模式七大原则
这篇文章介绍了设计模式中的七大原则,特别强调了单一职责原则,即一个类应该只有一个引起其行为变化的原因,以确保类功能的高内聚和低耦合。
|
28天前
|
设计模式 存储 前端开发
React开发设计模式及原则概念问题之自定义Hooks的作用是什么,自定义Hooks设计时要遵循什么原则呢
React开发设计模式及原则概念问题之自定义Hooks的作用是什么,自定义Hooks设计时要遵循什么原则呢
|
3月前
|
设计模式 供应链
设计模式六大原则之迪米特法则
设计模式六大原则之迪米特法则
|
3月前
|
设计模式
设计模式六大原则之依赖倒置原则
设计模式六大原则之依赖倒置原则
|
27天前
|
设计模式 算法 开发者
设计模式问题之最小知识原则(迪米特法则)对代码设计有何影响,如何解决
设计模式问题之最小知识原则(迪米特法则)对代码设计有何影响,如何解决
|
28天前
|
设计模式 前端开发 JavaScript
React开发设计模式及原则概念问题之什么是HOC(Higher-order component),HOC遵循的设计原则都有哪些
React开发设计模式及原则概念问题之什么是HOC(Higher-order component),HOC遵循的设计原则都有哪些
|
28天前
|
设计模式 前端开发 JavaScript
React开发设计模式及原则概念问题之什么是设计模式,单一职责原则如何理解
React开发设计模式及原则概念问题之什么是设计模式,单一职责原则如何理解
|
3月前
|
设计模式 uml
设计模式学习心得之前置知识 UML图看法与六大原则(下)
设计模式学习心得之前置知识 UML图看法与六大原则(下)
25 2
|
3月前
|
设计模式 Java 数据库
深入理解设计模式六大原则
深入理解设计模式六大原则
|
3月前
|
设计模式 数据可视化 程序员
设计模式学习心得之前置知识 UML图看法与六大原则(上)
设计模式学习心得之前置知识 UML图看法与六大原则(上)
28 0