
c#设计模式学习
文章平均质量分 71
金士顿
这个作者很懒,什么都没留下…
展开
-
软件架构风格:您的系统设计指南
软件架构不仅仅是组织代码的方式,它是对软件整体结构和行为的全面规划。一个好的架构能够让软件更加灵活、可维护,并且能够应对未来的变化。下面是一些流行的软件架构风格,以及它们的C#代码例子,帮助您更好地理解它们的应用。原创 2024-02-04 17:17:57 · 645 阅读 · 0 评论 -
工厂方法模式(一):C#实现指南
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类的实例化推迟到子类。产品接口定义了所有具体产品共享的公共接口。工厂接口定义了一个方法,用于创建产品。工厂方法模式通过定义工厂接口和具体工厂来将产品的创建过程与使用过程分离。这种分离使得你可以更改或扩展创建逻辑而不影响使用逻辑,增加了代码的灵活性和可维护性。C#的实现提供了一个清晰和强大的方式来实现这一模式。原创 2023-08-10 15:37:55 · 904 阅读 · 0 评论 -
C#设计模式(14)——模板方法模式(Template Method)
模板方法模式——在一个抽象类中定义一个操作中的算法骨架(对应于生活中的大家下载的模板),而将一些步骤延迟到子类中去实现(对应于我们根据自己的情况向模板填充内容)。模板方法使得子类可以不改变一个算法的结构前提下,重新定义算法的某些特定步骤,模板方法模式把不变行为搬到超类中,从而去除了子类中的重复代码。到这里,模板方法的介绍就结束了,模板方法模式在抽象类中定义了算法的实现步骤,将这些步骤的实现延迟到具体子类中去实现,从而使所有子类复用了父类的代码,所以模板方法模式是基于继承的一种实现代码复用的技术。转载 2022-08-24 18:11:13 · 283 阅读 · 0 评论 -
C#设计模式(13)——代理模式(Proxy Pattern)
c#的一个字节有符号类型和无符号类型。转载 2022-08-05 15:52:56 · 748 阅读 · 0 评论 -
C#设计模式(12)——享元模式(Flyweight Pattern)
转载地址https//www.cnblogs.com/zhili/p/FlyweightPattern.html。转载 2022-07-21 16:35:11 · 118 阅读 · 0 评论 -
C#设计模式(11)——外观模式(Facade Pattern)
https://www.cnblogs.com/zhili/p/FacadePattern.html转载 2022-03-04 17:33:19 · 103 阅读 · 0 评论 -
C#设计模式(10)——组合模式(Composite Pattern)
转载地址一、引言在软件开发过程中,我们经常会遇到处理简单对象和复合对象的情况,例如对操作系统中目录的处理就是这样的一个例子,因为目录可以包括单独的文件,也可以包括文件夹,文件夹又是由文件组成的,由于简单对象和复合对象在功能上区别,导致在操作过程中必须区分简单对象和复合对象,这样就会导致客户调用带来不必要的麻烦,然而作为客户,它们希望能够始终一致地对待简单对象和复合对象。然而组合模式就是解决这样的问题。下面让我们看看组合模式是怎样解决这个问题的。二、组合模式的详细介绍2.1 组合模式的定义组合模式允转载 2022-01-13 10:12:43 · 608 阅读 · 0 评论 -
C#设计模式(9)——装饰者模式(Decorator Pattern)
一、引言在软件开发中,我们经常想要对一类对象添加不同的功能,例如要给手机添加贴膜,手机挂件,手机外壳等,如果此时利用继承来实现的话,就需要定义无数的类,如StickerPhone(贴膜是手机类)、AccessoriesPhone(挂件手机类)等,这样就会导致 ”子类爆炸“问题,为了解决这个问题,我们可以使用装饰者模式来动态地给一个对象添加额外的职责。下面让我们看看装饰者模式。二、装饰者模式的详细介绍2.1 定义装饰者模式以对客户透明的方式动态地给一个对象附加上更多的责任,装饰者模式相比生成子类可以更转载 2022-01-11 10:41:11 · 444 阅读 · 0 评论 -
C#设计模式(8)——桥接模式(Bridge Pattern)
转载地址一、引言这里以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电视品牌的遥控器都继承这个抽象类,具体设计类图如下:这样的实现使得每部不同型号的电视都有自己遥控器实现,这样的设计对于电视机的改变可以很好地应对,只需要添加一个派生类就搞定了,但随着时间的推移,用户需要改变遥控器的功能,如:用户可能后面需要对遥控器添加返回上一个台等功能时,此时上面的设计就需要修改抽象转载 2022-01-11 10:06:17 · 277 阅读 · 0 评论 -
C#设计模式(7)——适配器模式(Adapter Pattern)
一、引言在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。那么如果将“将现存的对象”在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模式——使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用二、适配器模式的详细介绍2.1 定义下面让我们看看适配器的定义,适配器模式——把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配转载 2022-01-05 10:44:12 · 529 阅读 · 0 评论 -
C#设计模式(6)——原型模式(Prototype Pattern)
转载地址:https://www.cnblogs.com/zhili/p/PrototypePattern.html一、引言在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配了多个一样的类实例对象,然后如果采用工厂模式来创建这样的系统的话,随着产品类的不断增加,导致子类的数量不断增多,反而增加了系统复杂程度,所以在这里使用工厂模式来封装类创建过程并不合适,转载 2022-01-04 09:40:16 · 205 阅读 · 0 评论 -
WINFORM的MVC设计模式
参考链接:https://blog.youkuaiyun.com/qq_33232152/article/details/93777460MVC模式主要解决的问题就是将表示层和业务层进行分离,在以往做WINFORM项目的时候,通常都是将很多的逻辑代码直接写在了Form.cs代码的事件里,这样的话业务逻辑就和界面紧耦合在一起了,现在我们采用MVC来解耦。首先建立Model:using System; using System.Collections.Generic; using System.Linq;转载 2021-10-25 16:04:59 · 3125 阅读 · 0 评论 -
C#设计模式(1)——单例模式
一、引言最近在设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考。首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类二、单例模式的介绍说到单例模式,大家第一反应应该就是——什么是单例模式?,从“单例”字面意思上理解为——一个类只有一个实例,所以单例模式也就是保证一个类只有一个实例的一种转载 2021-06-23 17:41:56 · 170 阅读 · 0 评论