![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
23种设计模式个人总结之C#版
疆~
这个作者很懒,什么都没留下…
展开
-
单例模式
1.单例模式untiy中单例模式有3种表达方式第一种:(这种比较简单,但是需要新建一个空物体,并将脚本挂载上去。虽然简单,但是谨慎使用,此方法安全性不高)public class GameObjectPool : MonoBehaviour{ public static GameObjectPool _instance; private void Awake() ...原创 2018-11-13 00:46:14 · 185 阅读 · 0 评论 -
模板方法模式
14.模板方法模式 class Client { static void Main(string[] args) { Spinach spinach = new Spinach(); spinach.CookVegetabel(); Console.Read(); ...原创 2018-11-15 12:45:36 · 142 阅读 · 0 评论 -
观察者模式
15.观察者模式public abstract class Blog// 订阅号抽象类 { private List<IObserver> observers = new List<IObserver>(); public string Symbol { get; set; }//描写订阅号的相关信息 pub...原创 2018-11-15 12:45:42 · 216 阅读 · 0 评论 -
迭代器模式
16.迭代器模式 class Program { static void Main(string[] args) { ConcreteAggregate monkey = new ConcreteAggregate(); monkey[0] = "猴子"; monkey[...原创 2018-11-15 12:45:47 · 123 阅读 · 0 评论 -
责任链模式
17.责任链模式 public class PurchaseRequest// 采购请求 { public double Amount { get; set; }// 金额 public string ProductName { get; set; } public PurchaseRequest(doubl...原创 2018-11-15 12:45:53 · 133 阅读 · 0 评论 -
命令模式
18.命令模式 class Program { static void Main(string[] args) { OrderReceiver o = new OrderReceiver(); //命令的响应者 >响应传达者传达的命令 Command ecmd = new examcm...原创 2018-11-15 12:46:00 · 158 阅读 · 0 评论 -
备忘录模式
19.备忘录模式class Program{ static void Main(string[] args) { var persons = new List<ContactPerson> { new ContactPerson { Name= "Learning Hard", MobileNu...原创 2018-11-15 12:46:05 · 230 阅读 · 0 评论 -
状态模式
20.状态模式 核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,状态模式就两点:1、可以通过改变状态来获得不同的行为。2、你的好友能同时看到你的变化。 class Program { static void Main(string[]...原创 2018-11-15 12:46:11 · 179 阅读 · 0 评论 -
访问者模式
21.访问者模式 public abstract class Element { public abstract void Accept(IVistor vistor); public abstract void Print(); } public class ElementA : Element { ...原创 2018-11-17 00:33:02 · 123 阅读 · 0 评论 -
中介者模式
22.中介者模式 public abstract class AbstractCardPartner// 抽象牌友类 { public int MoneyCount { get; set; } protected AbstractCardPartner() { MoneyCount = 0; ...原创 2018-11-16 00:01:27 · 119 阅读 · 0 评论 -
解释器模式
23.解释器模式 class Program { static void Main(string[] args) { BooleanExp booleanExp1 = new BooleanExp("true"); BooleanExp booleanExp2 = new BooleanExp(...原创 2018-11-16 00:01:31 · 158 阅读 · 0 评论 -
策略模式
13.策略模式class Program { static void Main(string[] args) { Context PShow = new Context(new PersonStragety()); Console.WriteLine("单人票单价为:{0}", PShow.GetTax(...原创 2018-11-15 12:45:30 · 134 阅读 · 0 评论 -
享元模式
12.享元模式 我们可以共用一个 Hello world 对象,其中字符串 “Hello world” 为内部状态,可共享;字体颜色为外部状态,不可共享,由客户端设定。 class Program { static void Main(string[] args) { School school = n...原创 2018-11-15 12:45:25 · 251 阅读 · 0 评论 -
抽象工厂模式
2.抽象工厂模式 class Client { static void Main(string[] args) { // 南昌工厂制作南昌的鸭脖和鸭架 AbstractFactory nanChangFactory = new NanChangFactory(); Ya...原创 2018-11-13 00:47:31 · 155 阅读 · 0 评论 -
工厂方法模式
3.工厂方法模式 public static void Main(string[] args) { LiveFactory liveFactory = new MusicFactory(); Live musicLive = liveFactory.Create(); musicLive....原创 2018-11-13 00:48:16 · 141 阅读 · 0 评论 -
建造者模式
4.建造者模式 class Customer { static void Main(string[] args) { Director director = new Director(); Builder b1 = new ConcreteBuilder1(); Bui...原创 2018-11-13 00:49:15 · 123 阅读 · 0 评论 -
原型模式
5.原型模式class Program { static void Main(string[] args) { MonkeyPrototype prototypeMonkey=new ConcretePrototype ("Monkey"); MonkeyPrototype clone1 = prot...原创 2018-11-13 00:50:08 · 109 阅读 · 0 评论 -
适配器模式
6.适配器模式class Target { public virtual void Request() { Console.WriteLine("普通请求"); } } class Adapter:Target { Adaptee adaptee = new Adap...原创 2018-11-13 00:50:37 · 130 阅读 · 0 评论 -
装饰器模式
7.装饰器模式 class Program { static void Main(string[] args) { Phone ap = new ApplePhone(); //新买了个苹果手机 Decorator aps = new Sticker(ap); //准备贴膜组件 ...原创 2018-11-13 00:51:12 · 131 阅读 · 0 评论 -
代理模式
8.代理模式 class Client { static void Main(string[] args) { Person proxy = new Friend(); proxy.BuyProduct(); Console.Read(); } ...原创 2018-11-13 00:51:45 · 116 阅读 · 0 评论 -
外观模式
9.外观模式 class Client { static void Main(string[] args) { Facade facade = new Facade(); facade.MethodA(); facade.MethodB(); Co...原创 2018-11-13 00:52:35 · 127 阅读 · 0 评论 -
桥接模式
10.桥接模式 class Client { static void Main(string[] args) { ISoftware wechat = new WeChat(); ISoftware qq = new QQ(); Console.WriteLine("i...原创 2018-11-13 00:53:06 · 129 阅读 · 0 评论 -
组合模式
11.组合模式 //抽象构件,它是叶子和容器共同的父类,并且声明了叶子和容器的所有方法 abstract class AbstractFile { public abstract void Add(AbstractFile file);//新增文件 public abstract void Delete(AbstractFile fi...原创 2018-11-15 12:45:16 · 174 阅读 · 0 评论 -
23种设计模式个人总结之C#版
目录 1.单例模式2.抽象工厂模式3.工厂方法模式4.建造者模式5.原型模式6.适配器模式7.装饰器模式8.代理模式9.外观模式10.桥接模式11.组合模式12.享元模式13.策略模式14.模板方法模式15.观察者模式16.迭代器模式17.责任链模式18.命令模式19.备忘录模式20.状态模式21.访问者...原创 2018-09-09 15:59:58 · 14532 阅读 · 3 评论