首页 > 其他分享 >1.软件设计模式概述

1.软件设计模式概述

时间:2024-06-04 10:38:12浏览次数:18  
标签:源代码 软件开发 软件设计 模式 概述 软件 设计模式

1.什么是设计模式

设计模式从建筑行业而来:

《建筑的永恒之道》
作者: Christopher Alexander
定义:
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的成功的解决方案,无须再重复相同的工作。

简单的说:
设计模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。

2.软件模式

GoF将模式的概念引入软件工程领域,这标志着软件模式的诞生。

软件模式(Software Patterns)是将模式的一般概念应用于软件开发领域,即软件开发的总体指导思路或参照样板。

软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式等,实际上,在软件开发生命周期的每一个阶段都存在着一些被认同的模式。

软件模式与具体的应用领域无关,也就是说无论你从事的是移动应用开发、桌面应用开发、Web应用开发还是嵌入式软件的开发,都可以使用软件模式。

3 软件设计模式的种类

创建型(Creational)模式: 如何创建对象;
结构型(Structural )模式: 如何实现类或对象的组合;
行为型(Behavioral)模式: 类或对象怎样交互以及怎样分配职责。

3.1 创建型

  • 单例模式
  • 简单工厂模式
  • 工厂方法模式
  • 抽象工厂模式
  • 原型模式
  • 建造者模式

3.2 结构型

  • 适配器模式
  • 桥接模式
  • 组合模式
  • 装饰模式
  • 外观模式
  • 享元模式
  • 代理模式

3.3 行为型

  • 职责链模式
  • 命令模式
  • 解释器模式
  • 迭代器模式
  • 中介者模式
  • 备忘录模式
  • 观察者模式
  • 状态模式
  • 策略模式
  • 模板方法模式
  • 访问者模式

4. 软件设计模式有什么作用?

对于初学者来说,学习设计模式将有助于更加深入地理解面向对象思想, 让你知道:
1. 如何将代码分散在几个不同的类中?
2. 为什么要有“接口”?
3. 何谓针对抽象编程?
4. 何时不应该使用继承?
5. 如果不修改源代码增加新功能?
6. 更好地阅读和理解现有类库与其他系统中的源代码。

标签:源代码,软件开发,软件设计,模式,概述,软件,设计模式
From: https://www.cnblogs.com/bleds/p/18230273

相关文章

  • State设计模式上篇(理论篇)
    State设计模式理论篇参考了王备战老师的ppt,相当于是一次期末复习总结吧⭐目标:目前的需求是我所制作的OJ项目在面临代码提交结果以及运行结果时对于其中的各个状态(如:通过!编译失败等等诸多状态进行代码开发时,很容易代码一不小心就写烂了,写到连自己都无法看懂的地步,所以尝......
  • 23种设计模式之外观模式
    外观模式1、定义外观模式:为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更容易使用。2、外观模式结构Facade(外观角色):在客户端可以调用它的方法,在外观角色中可以知道相关子系统的功能和责任;在正常情况下,它将所有从客户端发......
  • 设计模式理解
    1.简单工厂模式:就是在一个单例里面通过传入的值创建不同的对象classModuleFactory{publicstaticModuleCreateModuel(ModuleTypetype){switch(type){caseModuleType.A:retur......
  • 责任链模式重构复杂业务场景
    文章开篇,抛出一个老生常谈的问题,学习设计模式有什么作用?设计模式主要是为了应对代码的复杂性,让其满足开闭原则,提高代码的扩展性。另外,学习的设计模式 一定要在业务代码中落实,只有理论没有真正实施,是无法真正掌握并且灵活运用设计模式的。这篇文章主要说 责任链设计模式,认识此......
  • 云渲染农场什么是线程模式?
    ​许多设计师在选择云渲染农场时,常常会遇到48线程、56线程、72线程等选项,然而,不少新手在面对这些选择时,往往无法直观地感受到不同线程数量之间的差异。接下来,我们将共同探讨线程的作用和影响,帮助大家更好地理解这些选择。一、CPU线程的意思CPU线程是计算机处理器的基本工作单元......
  • 设计模式学习(二)工厂模式——工厂方法模式+注册表
    目录工厂方法模式的瑕疵注册表工厂方法模式的瑕疵在前一篇笔记中我们介绍了工厂方法模式,示例的类图如下:考虑一种情况:现在要在程序运行时,根据外部资源,动态的实例化对象。也就是说在编译期我们无法知道要实例化的对象的类型。因此在实例化的过程中,就需要加以判断。例如,在我的例......
  • redis - [01] 概述
    题记部分 一、什么是redis  是一个由SalvastoreSanfilippo使用ANSIC语言编写的key-value存储系统,遵守BSD协议、支持网络、可基于内存、分布式、可选持久性的跨平台的非关系型数据库,并提供多种语言的API。Redis通常被称为数据结构服务器,因为值可以是字符串、哈希、列表、......
  • 思维模式的转变
     紧耦合到松耦合解耦的最终目的是灵活组装和匹配;思维的最终目的是解决问题,当我们面对一个具体的问题解决后,就有了问题和解决方法:问题A->解决方案A在我们头脑里面就存储了这么一个关系,即遇到问题A用解决方法A去解决。如果我们头脑里面都是去存储这种......
  • 模式匹配---kmp算法
    模式匹配--Kmp算法暴力匹配暴力匹配,既普通模式匹配,主串一个一个地与子串进行比对,一旦匹配失败就跳回主串原指针的下一个重新回溯,子串跳回第一个,重新开始匹配。主串BABCBFDAB下标012345678子串BCB主串原指针指向下标为......
  • 鸿蒙HarmonyOS实战-ArkTS语言基础类库(概述)
    ......