美文网首页原理和语言
设计模式|菜鸟教程 - C1 Intro

设计模式|菜鸟教程 - C1 Intro

作者: 左心Chris | 来源:发表于2019-07-26 14:24 被阅读0次

https://www.kancloud.cn/sstd521/design/193601
https://www.runoob.com/design-pattern/design-pattern-tutorial.html

0 TL;DR

两个核心,六大规则

1 GOF核心

对接口编程而不是对实现编程。
优先使用对象组合而不是继承。

2 设计模式的类型

2.1 类型

http://www.runoob.com/design-pattern/design-pattern-intro.html

2.2 UML图

https://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html

2.3 关系图

2.4 不同软件实体之间的关系

https://www.cnblogs.com/cutepig/archive/2007/10/11/921357.html

3 六(七)大基本原则

https://www.jianshu.com/p/807bc228dbc2
https://zhuanlan.zhihu.com/p/24614363
http://www.uml.org.cn/sjms/201211023.asp

单一职责 (Single Responsibility Principle)

一个类负责一个职责;假设某个类 P 负责两个不同的职责,职责 P1 和 职责 P2,那么当职责 P1 需求发生改变而需要修改类 P,有可能会导致原来运行正常的职责 P2 功能发生故障。

开闭 (Open-Closed Principle)

对软件实体(类、模块、函数等等)扩展开放,对修改关闭;这样能实现热插拔,扩展性好易于维护

  1. 能够扩展已存在的系统,能够提供新的功能满足新的需求,因此该软件有着很强的适应性和灵活性。
  2. 已存在的模块,特别是那些重要的抽象模块,不需要被修改,那么该软件就有很强的稳定性和持久性。

代换 (Liskov Substitution Principle)

派生类可以替换掉基类;基类出现的地方,子类都可以出现,就是有一套干活规则,遵从这一套规则的都可以干活,这样添加新的功能时,旧的功能还能使用;
里氏替换原则的重点在不影响原功能,而不是不覆盖原方法

倒转 (Dependence Inversion Principle)

面向接口编程,依赖于抽象而不依赖于具体;制定一套使用规则,两边一起开发;

隔离 (Interface Segregation Principle)

多接口,低耦合,客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上

  1. 接口隔离原则的思想在于建立单一接口,尽可能地去细化接口,接口中的方法尽可能少
  2. 但是凡事都要有个度,如果接口设计过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。

最小 (Law Of Demeter)

一个实体和其他实体少发生作用,相互相对独立;只与直接的朋友通信
什么是直接的朋友:每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系。耦合的方式很多,依赖、关联、组合、聚合等。其中,我们称出现成员变量、方法参数、方法返回值中的类为直接的朋友,而出现在局部变量中的类则不是直接的朋友。

复用 (Composite/Aggregate Reuse Principle)

尽量使用合成复用的方式,而不是使用继承;
在面向对象的设计中,如果直接继承基类,会破坏封装,因为继承将基类的实现细节暴露给子类;如果基类的实现发生了改变,则子类的实现也不得不改变;从基类继承而来的实现是静态的,不可能在运行时发生改变,没有足够的灵活性。于是就提出了组合/聚合复用原则,也就是在实际开发设计中,尽量使用组合/聚合,不要使用类继承。
例子:https://blog.csdn.net/LoveLion/article/details/7563441
https://blog.csdn.net/fanyun_01/article/details/51952445

相关文章

  • 设计模式|菜鸟教程 - C1 Intro

    https://www.kancloud.cn/sstd521/design/193601https://www....

  • 设计模式之概述

    参考资料:菜鸟教程之设计模式 设计模式概述 设计模式(Design pattern)代表了最佳的实践,通常被有经验...

  • jQuery 学习

    转载:菜鸟教程[https://www.runoob.com/jquery/jquery-intro.html] ...

  • 单例模式(Singleton Pattern)

    选自菜鸟教程 单例模式(Singleton Pattern)是Java中最简单的设计模式之一。这种类型的设计模式属...

  • 模板方法模式

    学习路线 菜鸟教程模板方法模式模板方法模式(Template Method) - 最易懂的设计模式解析 总结 应用...

  • 设计模式-创建型设计模式

    //本文参考菜鸟教程设计模式主要分为三大类创建型模式,结构型模式,行为型模式,本文主要讲创建型模式创建型模式,共五...

  • 设计模式-行为型设计模式

    //本文参考菜鸟教程设计模式主要分为三大类创建型模式,结构型模式,行为型模式,本文主要讲行为型模式行为型模式,共十...

  • 迭代器模式(Iterator Pattern)

    选自菜鸟教程 迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模...

  • 单例模式 Singleton Pattern

    单例模式-菜鸟教程 iOS中的设计模式——单例(Singleton) iOS-单例模式写一次就够了 如何正确地写出...

  • 状态模式(State Pattern)

    选自菜鸟教程 在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为...

网友评论

    本文标题:设计模式|菜鸟教程 - C1 Intro

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