设计者模式1-概述

设计模式相关内容介绍

设计模式的概述

设计模式的产生背景

设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。在1970年代,美国著名建筑大师Christopher Alexander在他的著作《建筑模式语言:城镇、建筑、构造》中,描述了一些常见的建筑设计问题,并提出了基本的设计模式。这些模式为城镇、邻里、住宅、花园和房间等设计提供了指导。他的另一部经典著作《建筑的永恒之道》进一步强化了设计模式的思想,为后来的建筑设计指明了方向。

随着时间的推移,设计模式的思想逐渐从建筑领域扩展到了软件工程领域。在1980年代,Kent Beck和Ward Cunningham等人开始将建筑领域的模式思想应用在软件开发中,但并未引起广泛的关注。直到1990年代,软件工程界才开始广泛研讨设计模式的相关话题。

特别是1991至1992年,以“四人组(Gang of Four,简称GoF)”自称的四位著名软件工程学者(Erich Gamma, Richard Helm, Ralph Johnson和John Vlissides)开始深入研究设计模式,并在1994年归纳发表了23种在软件开发中使用频率较高的设计模式。这23种设计模式被认为是经典的设计模式,并在后续的软件开发中得到了广泛的应用。

这23种设计模式在1995年被GoF整理成《设计模式:可复用面向对象软件的基础》一书出版,该书的出版标志着设计模式正式成为面向对象软件工程的一个重要研究分支。

软件设计模式的概念

软件设计模式(Software Design Pattern),简称为设计模式,是一套被反复使用、普遍知晓的、经过分类编目的、代码设计经验方面的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及这些问题的解决方案。也就是说,设计模式是解决特定问题的一系列套路,是前辈们的代码设计总结,具有一定的普遍性,可以被反复使用。其目的是为了提供代码的可重用性、可性以及可靠性

设计模式的必要性

  1. 代码重用
  2. 提高代码质量
  3. 易于沟通合作
  4. 促进软件架构的进化
  5. 培养良好的编程习惯

UML图

UML图主要包括以下几种:

  1. 用例图:用于描述系统的功能和参与者,以及它们之间的关系。
  2. 活动图:描述系统中的业务流程或处理过程,以及活动间的约束关系,有利于识别并行活动。
  3. 类图:描述系统中的类、对象及它们之间的关系,包括类的属性、方法以及类之间的继承、关联等关系。
  4. 对象图:描述系统在某一时刻的具体实例的状态,即系统中活动的对象及其关系。
  5. 状态图:描述类的对象或实体可能具有的所有状态以及引起状态转换的事件,展示了一个状态机,强调对象状态的变化。
  6. 序列图(顺序图):显示参与者如何以一系列顺序的步骤与系统的对象交互,强调消息是如何在对象之间被发送和接收的。
  7. 协作图:与序列图相似,显示对象间的动态合作关系,可以看成是类图和顺序图的交集。
  8. 构件图(组件图):描述代码构件的物理结构以及各种构建之间的依赖关系,用来建模软件的组件及其相互之间的关系。
  9. 部署图:用于建模系统的物理部署,如计算机和设备以及它们之间是如何连接的。

软件设计原则

软件设计原则是指在软件开发过程中,为了保证软件系统的质量和可维护性,所制定的一系列指导性准则。这些原则旨在帮助开发人员编写出高质量、可扩展、易维护、可复用的软件代码。以下是一些常见的软件设计原则:

  1. 单一职责原则(Single Responsibility Principle, SRP):一个类或模块应该只有一个改变的原因,即一个类或模块应该只有一个职责。这意味着每个类只负责一个特定的功能或职责,以使代码更加简单和易于维护。
  2. 开放封闭原则(Open-Closed Principle, OCP):软件实体(类、模块、函数等)应该对扩展开放,对修改封闭。这意味着当需要添加新功能或变化时,不应该修改已有的代码,而是应该通过扩展现有代码来实现变化。
  3. 里氏替换原则(Liskov Substitution Principle, LSP):子类型必须能够替换其父类型。
  4. 接口隔离原则(Interface Segregation Principle, ISP):客户端不应该依赖于它不需要的接口。
  5. 依赖倒置原则(Dependency Inversion Principle, DIP):高层模块不应该依赖于低层模块,二者都应该依赖于抽象。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇