C# 设计模式
xuanyin235
稳住,我们能赢!!!
展开
-
C# 设计模式一一单例模式
一、定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 二、应用 操作系统中只能有一个任务管理器,操作文件时,同一时间内只允许一个实例对其操作等。 三、实现 方式一:适用于单线程应用程序 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sy...转载 2019-03-14 10:51:38 · 193 阅读 · 0 评论 -
C# 设计模式一一策略模式
一、定义 它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。 二、结构图 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开,委派给不同的对象负责。策略模式通常把一系列的算法包装到一系列的策略类里面。用一句话慨括策略模式就是——“将每个算法封装到不同的策略类中,使得它们可以互换”。 下面是策略模式的结构...原创 2019-03-19 18:03:46 · 351 阅读 · 0 评论 -
C# 设计模式一一六大基本原则
一、单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理...转载 2019-03-20 00:50:26 · 414 阅读 · 0 评论 -
C# 设计模式一一装饰模式
一、定义 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 二、结构图 装饰模式就是利用SetComponent来对对象进行包装的。这样每个装饰对象的实现就和如何使用这个对象分离开了,每个装饰对象只关心自己的功能,不需要关心如何被添加到对象链当中。 三、实例 如果只有一个ConcreteComponent类而没有抽象的C...转载 2019-03-21 10:55:09 · 213 阅读 · 0 评论 -
C# 设计模式一一原型模式
一、定义 原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 二、结构图 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。 三、实例 //工作经历类 class WorkExperience { public string WorkDate { get; set; } public string Compa...转载 2019-03-25 13:47:51 · 314 阅读 · 0 评论 -
C# 设计模式一一工厂方法模式
前面我们讲述了简单工厂模式,提到其缺点是系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样造成简单工厂方法的实现逻辑过于复杂。本节介绍的工厂方法模式可以解决这个问题。 一、定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 二、结构图 三、实例 与简单工厂一致,我们先构建运算类,然后各运算子类继承该基类 pub...转载 2019-03-21 23:05:15 · 223 阅读 · 0 评论 -
C# 设计模式一一模板方法模式
一、定义 在一个抽象类中定义一个操作中的算法骨架(对应于生活中的大家下载的模板),而将一些步骤延迟到子类中去实现(对应于我们根据自己的情况向模板填充内容)。模板方法使得子类可以不改变一个算法的结构前提下,重新定义算法的某些特定步骤,模板方法模式把不变行为搬到超类中,从而去除了子类中的重复代码。 二、结构图 三、示例 //抽象模板角色(Vegetable扮演这个角色):定...转载 2019-03-26 09:52:53 · 256 阅读 · 0 评论 -
C# 设计模式一一简单工厂模式
一、定义 简单工厂模式我们也可以理解为负责生产对象的一个类, 二、设计原则 封装改变,既然要封装改变,自然也就要找到改变的代码,然后把改变的代码用类来封装。 三、示例演变 实现两个数的运算 public class Operation { public double NumberA { get; set; } public double ...原创 2019-03-19 12:24:48 · 185 阅读 · 0 评论