Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C#设计模式入门实战教程

C#设计模式入门实战教程

原创
作者头像
追逐时光者
发布于 2025-01-20 14:45:20
发布于 2025-01-20 14:45:20
1400
举报
文章被收录于专栏:编程进阶实战编程进阶实战

什么是设计模式

设计模式是对面向对象设计中反复出现的问题的解决方案。它们提供了被反复使用、多数人知晓的、经过分类编目的代码设计经验总结。

设计模式的作用

  • 提高代码的可重用性:通过定义一套标准的解决方案,设计模式使得相同或类似的问题可以在不同的项目中复用相同的代码结构或逻辑。
  • 增强代码的可读性:设计模式使用清晰、简洁的方式表达复杂的代码逻辑,使得其他开发者能够更容易地理解和维护代码。
  • 提高系统的可维护性:设计模式遵循一定的设计原则,如开闭原则、里氏代换原则等,这些原则有助于降低系统各部分的耦合度,提高系统的可扩展性和可维护性。

设计模式分类

设计模式可以被分为以下三大类:

  • 创建型模式(Creational Patterns)
  • 结构型模式(Structural Patterns)
  • 行为型模式(Behavioral Patterns)

创建型模式(Creational Patterns)

创建型模式主要关注于对象的创建过程。它们提供了一种创建对象的最佳方式,而不仅仅是直接使用 new 关键字。这样做的好处包括提高代码的重用性、减少依赖以及简化对象的创建过程。常见的创建型模式包括:

  1. 单例模式(Singleton Pattern)
  2. 工厂方法模式(Factory Method Pattern)
  3. 抽象工厂模式(Abstract Factory Pattern)
  4. 建造者模式(Builder Pattern)
  5. 原型模式(Prototype Pattern)

结构型模式(Structural Patterns)

结构型模式主要关注于如何通过组合类或者对象来获得更大的结构。它们通常用来处理类或对象之间的组合关系。常见的结构型模式包括:

  1. 适配器模式(Adapter Pattern)
  2. 桥接模式(Bridge Pattern)
  3. 组合模式(Composite Pattern)
  4. 装饰器模式(Decorator Pattern)
  5. 外观模式(Facade Pattern)
  6. 享元模式(Flyweight Pattern)
  7. 代理模式(Proxy Pattern)

行为型模式(Behavioral Patterns)

行为型模式主要关注于对象之间的通信。它们描述了类或对象之间如何交互以及如何分配职责。常见的行为型模式包括:

  1. 观察者模式(Observer Pattern)
  2. 策略模式(Strategy Pattern)
  3. 命令模式(Command Pattern)
  4. 中介者模式(Mediator Pattern)
  5. 备忘录模式(Memento Pattern)
  6. 模板方法模式(Template Method Pattern)
  7. 迭代器模式(Iterator Pattern)
  8. 状态模式(State Pattern)
  9. 责任链模式(Chain of Responsibility Pattern)
  10. 访问者模式(Visitor Pattern)
  11. 解释器模式(Interpreter Pattern)

经典的23种设计模式思维导图

图片
图片

2个C#实现的设计模式示例代码

设计模式 C# 版(.NET 6)

设计模式 C# 版(.NET 6),包含系列教程文章讲解:

  • 开源地址:https://github.com/sheng-jie/Design-Pattern
图片
图片
图片
图片
图片
图片
图片
图片

C#实现的23种设计模式示例代码

23种面向对象设计模式示例代码(C#实现):

  • 开源地址:https://github.com/Coder-EdisonZhou/DesignPattern.Samples.CSharp
图片
图片
图片
图片

设计模式推荐学习教程

  • https://github.com/YSGStudyHards/DotNetGuide
图片
图片
图片
图片
图片
图片
图片
图片

优秀项目和框架精选

以上项目都已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

  • GitHub开源地址:https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
  • Gitee开源地址:https://gitee.com/ysgdaydayup/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
图片
图片

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
设计模式
设计模式(Design Pattern) 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。它并不是语法规定而是一套帮助我们增强代码的可重用性、可扩充性、 可维护性、可读性、健壮性以及安全性的解决方案!
橘子君丶
2023/03/06
2010
设计模式:让我们的代码更优雅
设计模式(Design Pattern)是软件开发经验的总结,是软件设计中常见问题的典型解决方案。每个模式都像一个蓝图,我们可以自定义以解决代码中的特定设计问题。
运维开发王义杰
2023/08/10
1730
设计模式:让我们的代码更优雅
设计模式看了又忘,忘了又看?
耗时了 5 个月,终于把设计模式一整个系列写完。其实设计模式这一系列文章网上已经有很多非常好、非常优秀的文章,为什么要写呢?
LieBrother
2019/05/29
7290
设计模式看了又忘,忘了又看?
设计模式 | 总结篇
子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏。
被水淹没
2023/02/25
3220
设计模式 | 总结篇
2019-04-19 面试必须要准备的内容,设计模式大全
https://github.com/guanguans/notes/blob/master/Docs/Images/the-relationship-between-design-patterns.jpg
Albert陈凯
2019/04/29
4510
2019-04-19 面试必须要准备的内容,设计模式大全
设计模式开篇
设计模式这玩意平日里让我思绪万千,可真要提起笔来却顾头顾尾、不得要义。于是乎就有了书写设计模式系列的想法,一来是彻头彻尾的归纳总结一遍,二来也希望尽自己力量生产一些“不那么糟糕”的产物。
幺鹿
2018/08/21
3430
设计模式(0)—— 概述
设计模式(Design Pattern),是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
阳光岛主
2019/02/19
4340
设计模式简介
设计模式(Design pattern)是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。 设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。 项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。
Haley_Wong
2018/08/22
3050
设计模式简介
1.设计模式-什么是设计模式
参考学习: https://www.bilibili.com/video/BV1kW411P7KS?p=1 1.什么是设计模式 设计模式已经经历了很长一段时间的发展,它们提供了软件开发过程中面临的一般
诺谦
2021/07/08
6270
一起学习设计模式--设计模式
武侠小说中武术分招式和内功,比如独孤九剑就是招式,九阳神功就是内功。招式可能照猫画虎很快就能学会,但是内功心法则需要日积月累,一点一点的修炼。
独立观察员
2022/12/06
1930
一起学习设计模式--设计模式
C++设计模式笔记(03-01) - Template Method_模板方法(上)
[1]: 《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式:可复用面向对象软件的基础》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为"四人组(Gang of Four)"。
Fista
2020/07/21
4530
C++设计模式笔记(03-01) - Template Method_模板方法(上)
设计模式概况
设计模式(Design Patterns),旨在软件设计(可重用的面向对象软件的要素)中,被反复使用的一种代码设计经验。设计模式旨在简化代码量、降低耦合度、高效使用可重用代码,提高代码可拓性和可维护性。
PayneWu
2020/12/18
4500
设计模式概况
设计模式简介
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
happlyfox
2021/02/19
3950
程序员内功心法《设计模式》
设计模式是在软件工程实践过程中,JAVA使用者们总结出的良好的编程方法,使用设计模式能够增加系统的健壮性,易修改性和可扩展性,当你进行开发的软件规模比较大的时候,良好的设计模式会给编程带来便利,让系统更加稳定。
Java架构
2020/04/16
6850
程序员内功心法《设计模式》
你真的懂设计模式的设计原则?
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。
用户5224393
2019/08/13
6530
你真的懂设计模式的设计原则?
【设计模式自习室】开篇:为什么要有设计模式?
文章会逐步更新于我的各个博客上(见文章尾部介绍),也希望各位观众老爷能够关注我的个人公众号:后端技术漫谈,所有文章都会在上面发布,不会错过精彩好看的文章。
蛮三刀酱
2019/12/25
9230
设计模式概述
某软件公司在开发一个银行业务处理系统时需要对其中的机密数据进行加密处理,通过分析发现,用于加密的程序已经存在于一个第三方算法库中,但是没有该算法库的源代码。在系统初始设计阶段,已定义数据操作接口DataOperation,且该接口已被很多同事使用,对该接口的修改势必导致大量代码需要产生改动。
千羽
2021/12/29
4930
设计模式概述
C#设计模式开启闯关之路
  这是一条望不到尽头的编程之路,自踏入编程之路开始。就面临着各式各样的挑战,而我们也需要不断的挑战自己、不断学习充实自己、打好坚实的基础。以使我们可以走的更远。刚踏入编程的时候。根据需求编程,需求改代码改。需求加代码加。重复来重复去。一切都觉得还不错。功能实现了,项目跑起来了。但是真的就不错了吗?当然不是,也许过了几年你再回头看这些代码或许你也不知道写的啥了。这样写出来的代码你自己都可能看不到,更何况其他人呢?对吧。偶尔一次闯入一处秘境。发现了一本名叫”设计模式”的”武功”秘籍。也是编程之路之上不可获取的能力之一。它解决了代码重复使用,代码冗余的问题。使代码结构简洁易懂。使代码的思路清晰明了。代码优美,结构完善合理。我们一起看看这个至高的秘籍。
小世界的野孩子
2019/09/11
5770
每日一更:设计模式学习-基础知识
软件设计模式(Design pattern)也被称为设计模式。是一套被反复使用多数人知晓的,代码设计经验的总结。使用设计模式,是为了让可复用性代码容易被他人理解,保证代码可靠性,程序复用性。
肥晨
2023/02/17
2280
Java设计模式:核心概述(一)
设计模式的概念最早可以追溯到20世纪70年代的建筑设计领域。后来,这个概念被引入到软件工程中,并逐渐形成了一套完整的设计模式理论体系。其中,最具代表性的是《设计模式:可复用面向对象软件的基础》一书,它系统地总结了23种常见的设计模式,并成为了设计模式领域的经典之作。
公众号:码到三十五
2024/03/10
3360
相关推荐
设计模式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档