美文网首页
001 什么是设计模式?

001 什么是设计模式?

作者: mliumeng | 来源:发表于2017-09-11 15:05 被阅读10次

设计模式(Design Parttern)

我要正儿八经的弄懂设计模式。这是开始,先搞明白的什么是设计模式。

定义

设计模式是一套被 反复使用多数人知晓经过分类编目的代码设计经验的总结

为什么要用设计模式

为了 可重用 代码,让代码更容易的被他人理解并保证代码的 可靠性

谁这么叼设计牛模式

四人组( Gang of Four ),简称 GoF ,分别是 Erich Gamma, **Richard Helm **, **Ralph Johnson **和 John Vlissides 。但不是他们设计的,是他们在 95年的时候整理归纳 23 种最常用的设计模式并会变成一本书 Design Patterns: Elements of Reusable Object-Oriented Software 就是:《设计模式:可复用面向对象软件的基础》 。是经过时间的验证的,大家一定要学会。

怎么学

balabala ...

设计模式最重要的 4 个元素 模式名称 (Parttern Name)问题(Problem)解决方案 (Solution)效果 (Consequences)

学习设计模式我们就从这 4 个元素出发。一个一个弄清楚它。

  • 模式名称 (Parttern Name)

    就是这个模式的名字。简单明了的命名。
  • 问题 (Problem)

    描述了应该在何时使用模式,它包含了设计中存在的问题以及问题存在的原因
  • 解决方案 (Solution)

    该框架的解决方案。就是如何设计这个模式。描述了一个设计模式的组成成分,以及这些组成成分之间的相互关系,各自的职责和协作方式,通常解决方案通过UML类图和核心代码来进行描述。
  • 效果 (Consequences)

    描述了模式的优缺点以及在使用模式时应权衡的问题 (呈现)

说到这里,你都有啥框架

我们要掌握的应该除了GoF 说的 23 种模式还有加一个 简单工厂模式 (Simple Factory Pattern)也很常用还简单。我顺手就学会了。

来个预览先(参考

设计模式概述.png


看图得知,这是按照用途分为三种: 创建型(Creational, 结构型(Structural, 行为型(Behavioral 三种。
接下来就按照表格 模式名称这一列顺序一一讲解。学习难度和使用频率并不重要,因为我都要会。

相关文章

  • 001 什么是设计模式?

    设计模式(Design Parttern) 我要正儿八经的弄懂设计模式。这是开始,先搞明白的什么是设计模式。 定义...

  • 了解 MVVM 以及为什么它实际上是有意义的!

    什么是设计模式? 好吧,在讨论 MVVM 或其他设计模式之前。首先,为什么我们需要这些设计模式,什么是设计模式? ...

  • 2018-01-07

    大话设计模式——开篇 1、什么是设计模式? 设计模式(Design Pattern)...

  • 设计模式:什么是设计模式

    设计模式 什么是设计模式? 设计模式就是一套反复被使用的、为多数人知晓的、经过分类编目的、代码设计经验的总结。也就...

  • 面向对象中23种设计模式介绍

    什么是设计模式? 设计模式分为哪几种? 什么是设计模式? 设计模式的六大原则 1、开闭原则(Open Close ...

  • Java设计模式总汇一

    PS:首先我们要带着问题读文章 什么是设计模式 为什么要用设计模式 使用设计模式有什么好处 设计模式是一套被反复使...

  • 001设计模式--引言

    设计模式是什么? 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所...

  • 面向对象设计模式-6大原则

    什么是设计模式? iOS内平时有很多设计模式,如:delegate,单例模式,观察者模式,工厂模式…… 设计模式是...

  • 从封装变化的角度看设计模式——组件协作

    什么是设计模式 ​ 要了解设计模式,首先得清楚什么是模式。什么是模式?模式即解决一类问题的方法论,简单得...

  • 开发及常用框架中常见的设计模式

    一、什么是设计模式 二、为什么要使用设计模式? 三、何时使用设计模式 四、六大设计原则 五、不遵循设计模式可能会导...

网友评论

      本文标题:001 什么是设计模式?

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