设计模式
文章平均质量分 94
心受伤易碎
小白,多多指教。
展开
-
C# 设计模式(十一)代理模式
1.为什么使用代理模式在某些不能或者不方便直接调用对象时候,代理对象就是访问者和对象之间的中介。2.代理模式的实现实现要素:抽象主题 具体主题 代理对象代码实现/// <summary> /// 抽象主题 /// </summary> public interface ISubject { void DoSomething(); List<string> GetSomething原创 2020-07-13 14:20:11 · 104 阅读 · 0 评论 -
C# 设计模式(十)外观模式
外观模式应该算比较简单的一种,就是将比较复杂的业务逻辑封装一层,使得上层调用方便,不在意业务细节。原创 2020-07-13 14:19:11 · 90 阅读 · 0 评论 -
C# 设计模式(九)装饰者模式
1.为什么要使用装饰者模式首先实现一个学生学习的功能,实例化一个学生对象,然后调用学生的学习方法,现在有新的需求,学生学习前需要预习课程,学习后需要复习课程,老师答疑。要求:在不改动原有封装的前提下实现以上功能。在这种情况下,就得使用AOP(面向切面编程)编程思想,我们就用 继承+组合 装饰者模式来实现AOP2.装饰者模式的实现实现要素:抽象装饰对象 具体装饰对象 抽象装饰器 具体装饰器代码实现/// <summary> /// 抽象学生原创 2020-07-09 11:54:33 · 112 阅读 · 0 评论 -
C# 设计模式(八)组合模式
1.为什么要使用组合模式某些对象可以组合成树状层次的结构,采用组合模式,使用户对单个对象和组合对象具有一致的访问性。* 假如李先生到韶关“天街e角”生活用品店购物,用 1 个红色小袋子装了 2 包婺源特产(单价 7.9 元)、* 1 张婺源地图(单价 9.9 元);* 用 1 个白色小袋子装了 2 包韶关香蕉(单价 68 元)和 3 包韶关红茶(单价 180 元);* 用 1 个中袋子装了前面的红色小袋子和 1 个景德镇瓷器(单价 380 元);* 用 1 个大袋子装了前面的中袋子、原创 2020-07-09 11:53:08 · 651 阅读 · 0 评论 -
C# 设计模式(六)适配器模式
1.为什么要用适配器模式在引入不可修改的第三方类库,并且需要适配原有的接口时,就需要使用适配配器模式。2.适配器模式的实现实现要素:目标接口 适配者 适配器现有接口 IHelper/// <summary> /// 需要适配的接口,不可修改 /// </summary> public interface IHelper { void Add(); void Update();原创 2020-07-08 10:28:59 · 121 阅读 · 0 评论 -
C# 设计模式(五)建造者模式
1.为什么要用建造者模式创建型设计模式主要是将对象的创建交给第三方,上层不关心对象创建的细节。建造者模式用于对象创建十分复杂的情况,或者在创建对象的时候必须同时创建一些必须的部件,比如:电脑的CPU,显示器,键盘,鼠标这些都是必不可少的。创建过程比较复杂。2.建造者模式的实现实现要素:具体产品类 抽象建造类 具体建造类 指挥类/组装类代码实现:/// <summary> /// 抽象建造类 /// </summary> publi原创 2020-07-07 16:45:09 · 82 阅读 · 0 评论 -
C# 设计模式(四)抽象工厂
1.为什么要用抽象工厂前面介绍的工厂方法适用于工厂生产统一种类的产品,抽象工厂则适用于工厂生产一个产品簇,比如手机工厂会生成手机、耳机、等等。2.抽象工厂实现实现要素:抽象产品 具体产品 抽象工厂 具体工厂代码实现如下:/// <summary> /// 抽象工厂 /// </summary> public interface IFactory { IPhone CreatePhone();原创 2020-07-07 12:22:23 · 114 阅读 · 0 评论 -
C# 设计模式(三)工厂方法
1.为什么要用工厂方法模式为了遵循单一职责原则,避免简单工厂中职责过多倒置工厂不稳定,在简单工厂的基础上升级为工厂方法。2.工厂方法实现实现要素:抽象产品 具体产品 抽象工厂 具体工厂代码实现如下:产品代码不列出,只列出工厂代码/// <summary>/// 抽象工厂/// </summary>public interface IFactory{ IPhone CreateInstance();} /// <sum...原创 2020-07-03 11:25:28 · 89 阅读 · 0 评论 -
C# 设计模式(二)简单工厂
1.为什么要用工厂模式为了遵循依赖倒置原则:上层模块不应该依赖下层模块,二者应该通过抽象来依赖,即依赖抽象,不依赖细节。2.工厂模式实现2.1简单工厂模式简单工厂:创建一个工厂来实例化类,没有消除依赖,只是转移了依赖,并集中了依赖。(简单工厂不属于23中设计模式,因为太简单了?)实现代码如下:public class PhoneFactory { public static IPhone CreateInstance(PhoneType phoneType)原创 2020-07-03 09:37:30 · 105 阅读 · 0 评论 -
C# 设计模式(一)单例模式
单例模式的定义单例模式:顾名思义一个类只存在一个实例。有一下三个特点:该类只有一个实例 该类必须能创建一个静态实例 该类必须能向其他对象提供这个实例单例模式的实现单例模式的实现主要有两种方式:懒汉模式该模式的优点是:在类加载时不会生成实例,只有在第一次调用LGetInstance()生成实例。 /// <summary> //...原创 2019-05-10 11:57:44 · 80 阅读 · 0 评论