![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Lovey_北禾
努力过上自己想要的生活。加油北禾!
展开
-
23种设计模式——外观模式
为复杂子系统提供了一个简单接口 违反了开放封闭原则 传统的操作是客户调用好多个子系统,外观模式的出现只需要客户掉外观类就行了 外观类其实就是客户端 举例 我想在家看电影,旧社会时代,我要自己去把DVD打开,把爆米花机打开,投影仪打开,屏幕放下来,立体声打开,灯光打开。 新时代出现了更便捷的方法,我把它称之为人工智能,我只需要躺着对人工智能发送命令,他就会替我实现一些类的操作。 代码实现 子系统 public class DVD { private stat原创 2021-04-08 22:14:33 · 158 阅读 · 0 评论 -
23种设计模式——模板模式
封装了不变的部分,拓展了可变的部分,不变的部分在父类中实现,可变的部分在子类中实现。模板模式的特点是行为由父类去控制,子类去实现。符合开闭原则。 模板的流程或者说算法框架是固定的,具体的实现由子类去修改。 图解: 父类:写子类可以修改的方法以及固定流程的方法。 子类:写修改父类中的抽象方法。 实例: 英雄固定出生、死亡。每个英雄不同的是英雄以及QWER技能。 代码: 抽象类(父类) public abstract class HeroLibrary {原创 2021-03-30 16:24:20 · 170 阅读 · 0 评论 -
23种设计模式——装饰模式
问题: 由于过多使用继承来扩展对象的功能。 举例: 给游戏写一种类型的tank,想让他实现红外线和水陆两栖的功能。 IA:红外线,IB:水,IC:陆。 由上述的例子可以看出来,如果T50Tank想要获得红外线和水陆两栖的功能,就要继承4个父类,这就导致了由于过多使用继承来扩展对象的功能,所以采用装饰模式来对代码进行修改。 思想: 继承是静态的,我们要实现动态的。 就比如虚方法是动态方法,程序需要调用他的时候才会使用到他,而上述的坦克的例子,属于继承给写死的静态方法,我们要通过装饰模...原创 2021-03-18 13:08:38 · 202 阅读 · 2 评论 -
23种设计模式——桥接模式
分离接口和抽象类 就一句话 解耦 避免错综复杂的 交叉 增加耦合 static void Main(string[] args) { Car car = new Poersche(); car.CarType(); car = new Ferrari(); car.CarType(); } } /// <summary> /// 发动机类.原创 2021-03-02 19:14:13 · 123 阅读 · 0 评论 -
23种设计模式——适配器模式
何为适配器 就是转接口。 /// <summary> /// 目标对象需要的方法 就是Lightning 转 TypeC /// </summary> interface Target { void TypeC(); } /// <summary> /// 适配器对象 就是充电头 /// </summary> class Adapter : Target {原创 2021-03-02 11:33:49 · 113 阅读 · 0 评论 -
23种设计模式——原型模式
原型模式——克隆模式 思想 有一套试卷,A和B两个同学一起做,A同学做完了,B看了一眼,感觉挺好的,然后把A的试卷抢过来,照着A的卷子Copy了一份一摸一样的,A就是原型,B觉得A做得不是很好,然后可以在B的试卷上改一改,改完了之后完美了100分。 就是说B可以按照原型A来copy,并且可以在A的基础上进行修改。得到更好的。 深克隆和浅克隆 何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。原创 2021-03-01 17:22:14 · 133 阅读 · 0 评论 -
23种设计模式——建造者模式
为什么会出现建造者模式 需要创建一个复杂对象的时候,这个对象通过一定的步骤组合而成,并且步骤一步都不能少。 流程 玩家(客户)告诉拳头(指挥者)我想要一个什么样的英雄,拳头告诉手下的程序员去做一个这样的英雄,程序员去属性库(抽象建造属性类)中找,符合这样英雄的抽象属性,然后具体去设计这个英雄的各种属性。 核心 通过构造函数,让客户去改变构造函数中的里式替换子类。 代码展示 首先建造一个抽象类库,生命值,魔法值,攻击力,防御力 abstract class GameBuilder {原创 2021-02-25 16:52:04 · 111 阅读 · 1 评论