随笔分类 -  C#设计模式

1
摘要:访问者模式(Visitor Pattern) 定义 访问者模式(Visitor Pattern)是行为型设计模式的一种,它‌将算法与对象结构分离‌,允许在不修改现有对象结构的前提下‌定义新的操作‌。该模式通过双重分派机制实现操作与对象结构的解耦。 核心思想 关注点分离‌:对象结构负责数据存储,访问者 阅读全文
posted @ 2025-04-27 12:41 刘继先 阅读(38) 评论(0) 推荐(0)
摘要:策略模式(Strategy Pattern) 定义 策略模式(Strategy Pattern)是行为型设计模式的一种,它‌定义算法家族并分别封装‌,使其可以‌相互替换‌,且算法的变化独立于使用它的客户端。该模式通过将算法与对象解耦来实现不同算法的灵活切换。 核心思想 封装变化:将可能变化的算法部分 阅读全文
posted @ 2025-04-27 10:48 刘继先 阅读(46) 评论(0) 推荐(0)
摘要:‌状态模式(State Pattern) 定义 ‌状态模式(State Pattern)‌ 是一种行为设计模式,允许对象在其 ‌内部状态改变时改变它的行为‌,使对象看起来像是修改了自身的类。该模式通过将状态相关的行为封装到独立的类中,消除复杂的条件判断逻辑,提升代码可维护性。 核心思想 ‌状态与行为 阅读全文
posted @ 2025-04-24 16:02 刘继先 阅读(52) 评论(0) 推荐(0)
摘要:观察者模式(Observer Pattern) 定义 ‌观察者模式(Observer Pattern)‌ 是一种行为设计模式,允许对象(称为 ‌Subject‌,主题)维护一组依赖对象(称为 ‌Observer‌,观察者),并在主题状态变化时自动通知所有观察者。其核心是 ‌一对多的依赖关系‌ 和 ‌ 阅读全文
posted @ 2025-04-23 17:05 刘继先 阅读(101) 评论(0) 推荐(0)
摘要:备忘录模式(Memento Pattern) 定义 备忘录模式是一种‌ 行为型设计模式‌,允许在不破坏对象封装性的前提下,捕获并保存对象的内部状态,并在需要时恢复该状态。它通过将对象状态封装在独立的“备忘录对象”中,实现状态的保存与恢复逻辑的解耦。 ‌核心思想 ‌状态快照‌:将对象状态保存为一个不可 阅读全文
posted @ 2025-04-23 14:38 刘继先 阅读(64) 评论(0) 推荐(0)
摘要:桥接模式(Bridge Pattern) 定义 桥接模式是一种结构型设计模式,它将抽象部分与其实现部分分离,使它们可以独立变化。该模式通过组合的方式而不是继承的方式将抽象和实现连接起来。 核心思想 分离抽象与实现:将抽象(功能定义)与实现(具体实现)解耦 组合优于继承:使用对象组合代替多层继承 独立 阅读全文
posted @ 2025-04-14 16:00 刘继先 阅读(60) 评论(0) 推荐(0)
摘要:责任链模式(Chain of Responsibility Pattern) 定义 责任链模式是一种行为设计模式,它允许你将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下一个处理者。 核心思想 解耦发送者和接收者:发送者不需要知道具体由哪个对象处理请求 动态 阅读全文
posted @ 2025-04-14 15:02 刘继先 阅读(38) 评论(0) 推荐(0)
摘要:中介者模式(Mediator Pattern) 定义 中介者模式是一种 行为设计模式,它用一个中介对象来封装一系列对象之间的交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 核心思想 解耦直接通信:将网状的对象关系变为星型结构,中介者作为中心节点 集中控 阅读全文
posted @ 2025-04-14 14:43 刘继先 阅读(22) 评论(0) 推荐(0)
摘要:迭代器模式(Iterator Pattern) 模式定义 迭代器模式是一种行为型设计模式,它提供一种方法顺序访问一个聚合对象中的各个元素,而无需暴露该对象的内部表示。 核心思想 封装遍历逻辑:将集合的遍历行为抽象为独立的迭代器对象,避免暴露集合内部结构。 职责分离:集合负责管理元素,迭代器负责遍历元 阅读全文
posted @ 2025-04-14 11:48 刘继先 阅读(67) 评论(0) 推荐(0)
摘要:定义 命令模式(Command Pattern)是一种行为设计模式,它将请求封装为独立的对象,从而允许用户参数化其他对象,并支持请求的排队、记录、撤销/重做等操作。该模式通过解耦请求的发送者和接收者,提高了系统的灵活性和可扩展性。 ​核心思想​​ ​​将请求封装成对象​​:将每个操作(如“打开文件” 阅读全文
posted @ 2025-04-11 16:05 刘继先 阅读(105) 评论(0) 推荐(0)
摘要:适配器模式(Adapter Pattern) 定义 适配器模式是一种结构型设计模式,它允许接口不兼容的类能够一起工作。适配器充当两个不兼容接口之间的桥梁,将一个类的接口转换成客户端期望的另一个接口。 核心思想 接口转换:将一个接口转换成另一个客户端期望的接口 兼容性桥梁:使原本不兼容的类可以协同工作 阅读全文
posted @ 2025-03-31 16:01 刘继先 阅读(28) 评论(0) 推荐(0)
摘要:代理模式(Proxy Pattern)是一种结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。代理模式可以用于延迟加载、控制访问、日志记录、缓存等。 代理模式的主要角色 Subject(抽象主题): 定义了代理类和真实类的公共接口。 RealSubject(真实主题): 实现了Subj 阅读全文
posted @ 2024-10-25 10:23 刘继先 阅读(42) 评论(0) 推荐(0)
摘要:原型模式简单的说,就是克隆自己,但从性能角度来说,还是很有作用的,一般用在需要大量创建对象,且每个对象属性值大多差不多时,在实际使用中,需要理解C#内存分配机制(值类型在栈上,引用类型在堆上,值类型中有引用类型时,栈上保存地址,数据存在堆上,而在引用类型中的值类型,就是直接存在堆上),所以在原型模式 阅读全文
posted @ 2024-10-23 13:40 刘继先 阅读(29) 评论(0) 推荐(0)
摘要:建造者模式也叫生成器模式,主要思想是让建造者关注产出,不关心过程,使用场景是复杂对象分步骤,控制步骤先后的构建 public class House { public string Foundation { get; set; } public string Structure { get; set 阅读全文
posted @ 2024-10-22 15:04 刘继先 阅读(21) 评论(0) 推荐(0)
摘要:一、模板方法模式,简单的说就是在一个上层的抽象类中,定义了一些操作的抽象方法,有一个总体的方法组织了怎么去调用这个操作方法,而操作方法的具体实现由子类去实现,达到抽取公共部分放在父类模板中,子实现各自己不对的部分 public abstract class AbstractTemplate { pr 阅读全文
posted @ 2024-10-22 10:54 刘继先 阅读(35) 评论(0) 推荐(0)
摘要:一、简单工厂模式 在一个工厂类中暴露一个带参数的方法,根据方法参数实例化所需要的对象,由于工厂中包含了判断逻辑,不符合(OCP),只适应于简单固定的几个对象,后期新增对象,需要修改工厂方法 public static class SimpleFactory { public static IAnim 阅读全文
posted @ 2024-10-21 16:43 刘继先 阅读(23) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2024-10-21 11:27 刘继先 阅读(10) 评论(0) 推荐(0)
摘要:一、Singleton模式主要应用在一些特殊的类,在整个系统运行中,有且仅有一个实例的场景 二、Singleton模式分为单线程与多线程情况,当然多线程一样适应单线程 单线程:在这种情况下比较容易,因为你的程序你能保证在单线程下运行,所以不要考虑那么多情况 public class Singleto 阅读全文
posted @ 2014-07-03 17:00 刘继先 阅读(266) 评论(0) 推荐(0)

1