![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C#设计模式学习笔记
设计模式
醉风o
这个作者很懒,什么都没留下…
展开
-
c#设计模式——访问者模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { ObjectStructure.Add(new ElementA()); ObjectStructure.Add(new ElementB()); ObjectStructure.VisitorElem原创 2020-06-27 21:51:04 · 95 阅读 · 0 评论 -
c#设计模式——解释器模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点四 参考资料一 UML类图PS:文法是用于描述语言的语法结构的形式规则。没有规矩不成方圆,例如,有些人认为完美爱情的准则是“相互吸引、感情专一、任何一方都没有恋爱经历”,虽然最后一条准则较苛刻,但任何事情都要有规则,语言也一样,不管它是机器语言还是自然语言,都有它自己的文法规则。例如,中文中的“句子”的文法如下。〈句子〉::=〈主语〉〈谓语〉〈宾语〉〈主语〉::=〈代词〉|〈名词〉〈谓语〉::=〈动词〉〈宾语〉::=〈代词〉|〈名词〉原创 2020-06-27 20:58:37 · 150 阅读 · 0 评论 -
c#设计模式——享元模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { Flyweight flyweight = FlyweightFactory.GetFlyweight("qq"); flyweight.Operation(); UnshareConcreteFlyweight un原创 2020-06-27 18:35:30 · 141 阅读 · 0 评论 -
c#设计模式——中介者模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { MediatorA mediator = new MediatorA(); Colleague colleagueA = new ColleagueA(mediator); Colleague coll原创 2020-06-27 00:06:11 · 64 阅读 · 0 评论 -
c#设计模式——职责链模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { Handler handlerA = new HandlerA(); Handler handlerB = new HandlerB(); Handler handlerC = new HandlerC原创 2020-06-26 23:26:35 · 145 阅读 · 0 评论 -
c#设计模式——命令模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { Receiver receiver = new Receiver(); ICommand command = new CommandA(receiver); Invoker invoker = new I原创 2020-06-26 17:59:52 · 116 阅读 · 0 评论 -
c#设计模式——桥接模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { Abstraction abstraction = new AbstractionA(); abstraction.SetImplementor(new ImplementorA()); abstrac原创 2020-06-26 17:24:22 · 100 阅读 · 0 评论 -
c#设计模式——单例模式
目录一 UML类图二 例子2.1 单线程2.2 多线程2.2.1 懒汉式单例类2.2.2 饿汉式单例类一 UML类图二 例子2.1 单线程 public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton GetI原创 2020-06-25 20:52:26 · 91 阅读 · 0 评论 -
c#设计模式——迭代器模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点四 .Net中的迭代器实现4.1 IEumerator4.2 IEumerable一 UML类图二 例子 class Program { static void Main(string[] args) { ConcreteAggregate aggregate = new ConcreteAggregate(); aggregate[0] = 1;原创 2020-06-25 20:27:44 · 180 阅读 · 0 评论 -
c#设计模式——六大原则
单一职责原则解释就一个类而言,应该仅有一个引起它变化的原因。优点代码解耦, 易维护,易扩展,易复用,灵活性好。开放封闭原则解释是说软件实体(类、模板、函数等等)应该可以扩展,但是不可修改。对于扩展是开放的,对更改是封闭的。优点易维护,易扩展,易复用,灵活性好。依赖倒转原则解释1.高层模块不应该依赖低层莫鲁哀,两个都应该依赖抽象。2.抽象不应该依赖细节,细节应该依赖抽象。优点易维护,易扩展,易复用,灵活性好。里氏代换原则解释子类型必须能够替换掉他们的父类型。...原创 2020-06-25 19:01:00 · 463 阅读 · 0 评论 -
c#设计模式——组合模式
目录一 UML类图二 例子一 UML类图二 例子原创 2020-06-25 18:49:38 · 147 阅读 · 0 评论 -
c#设计模式——备忘录模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 static void Main(string[] args) { Originator originator = new Originator(); Caretaker caretaker = new Caretaker(); caretaker.memento = originator.CreateMemento原创 2020-06-25 18:01:52 · 192 阅读 · 0 评论 -
c#设计模式——适配器模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 class Program { static void Main(string[] args) { Target target = new Adapter(); target.Request(); } } public interface Target { void原创 2020-06-25 12:19:04 · 248 阅读 · 0 评论 -
c#设计模式——建造者模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点四 与抽象工厂的区别一 UML类图二 例子 public interface IBuilder { void BuildPart(); Product GetProduct(); } public class Director { public Product ProductConstruct(IBuilder builder) {原创 2020-06-25 00:42:39 · 113 阅读 · 0 评论 -
c#设计模式——状态模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 public interface IState { void Handle(Context context); } public class Context { private IState state; public void SetState(IState state) { this.s原创 2020-06-24 23:04:53 · 151 阅读 · 0 评论 -
c#设计模式——抽象工厂模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 public interface IFactory { AbstractProductA CreateProductA(); AbstractProductB CreateProductB(); } public abstract class AbstractProductA { } public abstract class A原创 2020-06-24 22:00:55 · 140 阅读 · 0 评论 -
c#设计模式——观察者模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点事件委托实现一 UML类图二 例子 public class Subject { private List<IObserver> observers = new List<IObserver>(); public void Add(IObserver observer) { observers.Add(observer);原创 2020-06-24 21:19:43 · 107 阅读 · 0 评论 -
c#设计模式——外观模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 public class Facade { private SubSysytemOne subSysytemOne; private SubSysytemTwo subSysytemTwo; private SubSysytemThree subSysytemThree; public Facade() {原创 2020-06-23 18:06:36 · 95 阅读 · 0 评论 -
c#设计模式——模板方法模式
目录一 UML类图二 例子三 优缺点3.1 优点3.2 缺点一 UML类图二 例子 public abstract class ITemplateMethod { public abstract void Operation1(); public abstract void Operation2(); public void TemplateMethod() { Operation1();原创 2020-06-23 16:54:07 · 275 阅读 · 0 评论 -
c#设计模式——原型模式
目录一 UML类图二 例子三 浅复制和深复制3.1 浅复制3.2 深复制四 优缺点4.1 优点4.2 缺点一 UML类图二 例子 public interface IPrototype { IPrototype Clone(); } public class PrototypeA : IPrototype { public IPrototype Clone() { return t原创 2020-06-23 10:50:17 · 165 阅读 · 0 评论 -
c#设计模式——工厂方法模式
UML类图例子 public interface IFactory { IProduct GetProduct(); } public class FactoryA : IFactory { public IProduct GetProduct() { return new ProductA(); } } public class FactoryB : IFactory {原创 2020-06-23 09:04:02 · 113 阅读 · 0 评论 -
c#设计模式——代理模式
UML类图例子 public interface Subject { void Request(); } public class RealSubject : Subject { public void Request() { //todo; } } public class Proxy : Subject { private Rea原创 2020-06-22 21:34:31 · 96 阅读 · 0 评论 -
c#设计模式——装饰模式
UML类图例子 public interface Component { void Operation(); } public class ConcreteComponent : Component { public void Operation() { //todo } } public abstract class Decorator : Component原创 2020-06-22 21:14:44 · 123 阅读 · 0 评论 -
c#设计模式——策略模式
UML类图例子public abstract class原创 2020-06-22 17:38:37 · 161 阅读 · 0 评论 -
c#设计模式——简单工厂模式
UML类图例子// An highlighted blockpublic class BaseOperation{ public virtual void Task(){}}public class OperationA:BaseOperation{ public override void Task(){ //todo }}public class OperationB:BaseOperation{ public override void Task(){ //todo原创 2020-06-22 16:01:43 · 89 阅读 · 0 评论