设计模式
文章平均质量分 62
威威当爸了
good good study,day day up!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
观察者模式
观察者模式解决的是一个对象状态改变时,如何自动通知其他依赖对象的问题,同时保持对象间的低耦合和高协作性。创建了对象间的一种一对多的依赖关系,当一个对象状态改变时,所有依赖于它的对象都会得到通知并自动更新。当一个对象的状态变化需要同时更新其他对象时。原创 2025-07-31 11:15:24 · 187 阅读 · 0 评论 -
工厂方法(特性+反射)
本文介绍了一个基于反射和特性的C#计算器实现。通过定义一个抽象基类Calc和四个具体运算子类(加、减、乘、除),每个子类使用AttributeF特性标注对应运算符。ReflectionF类利用反射自动发现并缓存所有运算类,通过字典映射运算符与实例。当用户在界面选择运算符时,系统通过反射获取对应实例并执行计算,最后显示结果。这种设计实现了运算逻辑的动态发现和灵活扩展,避免了硬编码的工厂模式,提高了代码的可维护性。原创 2025-07-23 14:25:28 · 199 阅读 · 0 评论 -
外 观 设 计 模 式
外观类(Facade):为客户端提供统一的调用接口,外观类知道哪些子系统负责处理请求,从而将客户端的请求代理给适当子系统对象。外观模式可以理解为转换一群接口,客户端只需要调用一个接口,而不用调用多个接口才能达到目的。子系统集合:指模块或者子系统,处理Facade对象指派的任务,功能的实际提供者。外观模式就是解决多个复杂接口带来的使用困难,起到简化用户操作的作用。外观模式(Facade),也叫“过程模式”最容易理解的设计模式.客户端(调用者):外观接口的调用者。原创 2022-10-25 08:42:51 · 128 阅读 · 0 评论 -
策略模式
这个模式我的理解是在Context角色调用简单工厂返回父类的对象.2.将对象传到抽象方法中实现.这个模式很强大.与客户端完全隔离.适用地方和简单方法一致.(使用于多变的场合.比如说我遇到的一个客户要的出货资料。条件如下1.A/B包装+A/B产品测试(这个下面两个的和)2.A产品包装+A产品测试3.B产品包装+B产品测试……测试出货等等.传一个工单到Context然后调用抽象方法...原创 2020-04-15 11:26:09 · 186 阅读 · 0 评论 -
模板方法模式
1.在父类里写一个方法,将流程行为定义清楚.2.在父类里抽象流程行为.3.实现->调用.以列印举个例子:原创 2020-04-09 12:22:07 · 148 阅读 · 0 评论 -
装饰器设计模式
装饰者模式的适用场景 1、在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。2、需要动态地给一个对象增加功能,这原创 2017-08-29 13:52:02 · 592 阅读 · 0 评论 -
代理模式.
代理模式的适用场景代理模式就是给一个对象提供一个代理,并由代理对象控制对原对象的引用。主要使用场景有:日志代理、权限代理、缓存代理、延迟代理参与者: Subject: 抽象角色。声明真实对象和代理对象的共同接口。Proxy: 代理角色。代理对象与真实对象实现相同的接口,所以它能够在任何时刻都能够代理真实对象。代理角色内部包含有对真实对象的引用,所以她可以操作原创 2017-08-31 10:14:42 · 244 阅读 · 0 评论 -
设计原则与三大类型的功能
组合代替,类与类之间的关系.原创 2017-12-28 14:46:07 · 1327 阅读 · 2 评论 -
解释器模式
概述解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。核心概念: 定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。解释器模式是一种类行为型模式。解释器模式结构重要核心模块:抽象表达式(Expression)声明一个所有的具体表达式角色都需要实...原创 2018-03-15 11:58:26 · 580 阅读 · 1 评论 -
桥接模式.......
桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。举实际例子:1.手机目前最常用的的三种系统:IOS,WinPhone,Android(高手是想装什么系统就装什么系统)2.什么手都可以打电话和发短信.参与者: Abstraction:抽象类。 系统抽象 RefinedAbstraction:扩充抽象类。 具体实现三个系统原创 2017-09-14 11:48:59 · 338 阅读 · 0 评论 -
责任链模式
职责链模式描述的请求如何沿着对象所组成的链来传递的。它将对象组成一条链,发送者将请求发给链的第一个接收者,并且沿着这条链传递,直到有一个对象来处理它或者直到最后也没有对象处理而留在链末尾端。参与者: Handler: 抽象处理者。定义了一个处理请求的方法。所有的处理者都必须实现该抽象类。 ConcreteHandler: 具体处理者。处理它所负责的请求原创 2017-09-14 11:20:37 · 213 阅读 · 0 评论 -
原型模式
原型模式是在原有的对象上克隆新的对象原型模式的构成1.抽象原型类(定义具有克隆自己的方法)2.具体原型类(实现定义的方法)3.客户类(克隆生成生的对象)原创 2017-08-11 18:24:38 · 228 阅读 · 0 评论 -
单例模式
意图保证这个类仅有一个实例,并提供一个访问实验室的全局访问点.构成1.将构造方法私有化(让外面没有办法new)2.提供一个公有的静态方法将new好的静态对象以返回值接收. private ToolHelp() //私有构造函数 { } public static ToolHelp Singleton() //静原创 2017-08-11 19:30:36 · 201 阅读 · 0 评论 -
访问者模式
应用场景访问者模式即表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。自我理解是 比如说数据结构固定的,把他的一直在改变的行为给抽出来写成观察者类.参与者: Vistor: 抽象访问者。为该对象结构中的ConcreteElement的每一个类声明的一个操作。 Concret原创 2017-08-24 17:42:01 · 308 阅读 · 0 评论 -
建造者模式
意图适用于那些内部结构比较复杂的产品对象.构成---参与者: Builder:抽象建造者。它声明为创建一个Product对象的各个部件指定的抽象接口。 ConcreteBuilder:具体建造者。实现抽象接口,构建和装配各个部件。不同的 ConcreteBuilder可以更换顺序参数,取得不同的结果. Director:指挥原创 2017-08-14 19:55:46 · 238 阅读 · 0 评论 -
适配器模式
一、使用场景1. 系统需要使用现有的类,而这些类的接口不符合系统的需要。2.想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类参与者:Target:目标抽象类Adapter:适配器类Adaptee:适配者类Client:客户类太简单,不想写代码了原创 2017-09-04 16:41:48 · 346 阅读 · 0 评论 -
备忘录
意图保存一个对象在某一刻的(部分)状态,这样以后需要时它才能恢复到先前的状态.(和原型模式功能类似).构成---参与者: Memento: 备忘录。正常使用的类.Originator: 原发器。负责创建一个备忘录,用以记录当前对象的内部状态,通过它将当前的( Memento:备忘录 )对象的某一些状态保存到(Caretaker:看管者)里面,原创 2017-08-24 09:32:15 · 339 阅读 · 0 评论
分享