C# 设计模式
chasinghope
念念不忘,必有回响;不忘初心,方得始终。
展开
-
C# 设计模式———享元模式
享元模式简介使用共享对象可有效地支持大量的细粒度的对象。主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。何时使用:系统中有大量对象。这些对象消耗大量内存。这些对象的状态大部分可以外部化。这些对象可以按照内蕴状态分为很多组,当把外蕴对象从对象中剔除出来时,每一组对象都可以用一个对象来代替。...原创 2020-02-12 17:32:37 · 278 阅读 · 0 评论 -
C# 设计模式———命令模式
命令模式简介把一个请求或者操作封装在命令对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式角色:Receiver 也就是最终要执行的命令【】;Command 将Receiver命令的方法进行抽象,抽象成一个Exectue()方法;ConcreteCommand 将Receiver中的每一个命令生成一个具体的子类...原创 2020-02-12 12:50:40 · 226 阅读 · 0 评论 -
C# 设计模式———责任链模式
责任链模式简介使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求直到有对象处理完为止。在处理消息的时候以过滤很多道;行为的请求和行为的处理进行了解耦。然后请求可以从这个链表进行流转,这个行为会让链表中各个节点都可能处理到当前的请求。C# 责任链模式DemoTask: 请假请假3天及以内 --> 开发经理请假...原创 2020-02-12 08:56:49 · 490 阅读 · 0 评论 -
C# 设计模式———状态模式
状态模式简介当一个对象内在状态改变时允许其改变行为,这个对象看起来像时改变了其类。原创 2020-02-11 17:45:16 · 375 阅读 · 0 评论 -
C# 设计模式———桥接模式
桥接模式简介将抽象和实现解耦,使得两者可以独立的变化。原创 2020-02-11 13:53:20 · 264 阅读 · 0 评论 -
C# 设计模式———装饰器模式
装饰器模式简介动态地给一个对象添加一些额外的职责。就增加功能来说,它相比生成子类更为灵活。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。Component 类充当抽象角色,不应该具体实现。修饰类引用和继承 Component 类,具体扩展类重写父类方法一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着...原创 2020-02-11 10:24:16 · 437 阅读 · 0 评论 -
C# 设计模式———迭代器模式
前言在正文开始之前先吐槽一下,我发现出来混真的迟早都是要还的。直接上图:foreach原理 底层原理没细究学习游戏开发-> Unity->协程->迭代器 底层原理吓跑我学习游戏开发->设计模式->迭代器模式 来吧,这次不跑了迭代器什么场景下需...原创 2020-02-10 14:28:05 · 650 阅读 · 0 评论 -
C# 设计模式———备忘录模式
备忘录模式简介在不破坏封装型的前提下,捕获一个对象内部的状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原来保存的状态。使用场景: 使用户可以取消不确定或错误的操作,恢复到原来的状态游戏存档回滚操作保存/恢复数据C# 备忘录模式Demousing System;namespace MementoPattern{ class Program ...原创 2020-02-09 09:59:59 · 298 阅读 · 0 评论 -
C# 设计模式———模板方法模式
模板方法模式简介定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。一些方法通用,却在每一个子类都重新写了这一方法。关键代码在抽象类实现,其他步骤在子类实现。优点缺点封装不变的部分,扩展可变部分每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大提取公共代码,便于维护/...原创 2020-02-08 20:16:45 · 329 阅读 · 0 评论 -
C# 设计模式———原型模式
原型模式简介用原型实例指定创建对象的种类并且通过拷贝这些原型创建新的对象,是用于创建重复的对象,同时又能保证性能。该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。原型模式:动态获取一个类的运行状态,避免耗时new的实例化;做对象copy原型模式的copy只是一个浅copy,它并不能copy引用类型深copy实现让引用类型都实现一个Clone方法,从而手...原创 2020-02-08 18:26:07 · 339 阅读 · 0 评论 -
C# 设计模式———组合模式
组合模式将对象组合成树形结构以表示“部分——整体”的层次结构,使得用户对单个对象使用具有一致性。UML补充说明:树枝和叶子实现统一接口,树枝内部组合该接口,树枝内部组合该接口,并且含有内部属性 List,里面放 Component。优缺点:优点缺点高层模块调用简单。在使用组合模式时,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置原则。节点增加自由/...原创 2020-02-08 14:11:47 · 590 阅读 · 0 评论 -
C# 设计模式———外观(门面)模式
外观模式简介要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供了一个高层次的接口,使得子系统更易于使用。为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。C# 外观模式Demousing Sys...原创 2020-02-08 09:41:40 · 515 阅读 · 0 评论 -
C# 设计模式———中介模式
中介模式简介用一个中介对象封装一系列的对象交互,中介使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。使用场景:类与类之间的通信,如何减少耦合;C# 中介模式Demousing System.Collections.Generic;using System;using System.Linq;namespace Med...原创 2020-02-07 17:58:06 · 380 阅读 · 0 评论 -
C# 设计模式———建造者模式
建造者模式简介将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在这样的设计模式中,有以下几个角色:1 builder:为创建一个产品对象的各个部件指定抽象接口。2 ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并 提供一个检索产品的接口。3 Director:构造一个使用Builder接口的对象...原创 2020-02-07 13:41:23 · 243 阅读 · 0 评论 -
C# 设计模式——策略模式
策略模式简介定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。将这些算法封装成一个一个的类,任意地替换。1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。2、一个系统需要动态地在几种算法中选择一种。3、如果一个对象有很多的行为,...原创 2020-02-07 11:10:46 · 635 阅读 · 0 评论 -
C# 设计模式——代理模式
代理模式简介一个类代表另一个类的功能,为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。使用场景:想在访问一个...原创 2020-02-06 17:20:40 · 553 阅读 · 0 评论 -
C# 设计模式——观察者模式
观察者模式简介定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。优点缺点1、观察者和被观察者是抽象耦合的。1、如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。2、建立一套...原创 2020-02-05 18:00:38 · 446 阅读 · 1 评论 -
23种设计模式图解
设计模式一图总览C# 设计模式目录C#工厂模式原创 2020-02-02 09:36:13 · 1314 阅读 · 0 评论 -
C# 设计模式——工厂模式
工厂模式简介工厂模式是我们常用的实例化对象模式了,是用工厂方法代替new 操作的一种模式。是一种创建型模式,所有对象的创造都有一个对象去创造。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a = new A()工厂模式也是用来创建实例对象的,所以以后new是就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但也会给你系统带来更大...原创 2020-01-21 10:07:14 · 919 阅读 · 0 评论