随笔分类 - 设计模式
摘要:命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。 介绍 意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。 主
阅读全文
摘要:策略模式是一种定义一系列算法的方法,以相同的方式调用不同的算法,减少了各种算法类与使用算法类之间的耦合。 它的重心不是如何实现算法,而是如何组织,调用这些算法。从而让程序结构更灵活,具有更好的维护性和扩展性。 代码实现: //算法策略接口 public interface IStrategy { i
阅读全文
摘要:设定一个场景:公司要对接两家服务商的业务,业务是相同的,但是两家服务商的接口表现形式是不同的,需要我们对其做一层封装,让它们实现我们统一的接口,以便于公司内部调用。 假设业务包括会员和优惠券两个部分,首先我们需要 创建一个ErpService.Abstract项目,并为这两个业务定义两个统一的接口以
阅读全文
摘要:简单工厂模式 创建一个工厂类,对实现了同一个接口的多个类进行实例的创建。 //抽象类 人 public abstract class HuMan { public abstract void Talk(); } //黑人实现类 public class BlackHuman : HuMan { pu
阅读全文
摘要:三大基本特征 封装 封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程,使用者不必了
阅读全文
摘要:今天在园子中,看到有人用下面的例子来讲解桥接模式,简洁明了,言简意赅 。 在现实生活中,我们常常会用到两种或多种类型的笔,比如毛笔和蜡笔。假设我们需要大、中、小三种类型的画笔来绘制12中不同的颜色,如果我们使用蜡笔,需要准备3*12=36支。但如果使用毛笔的话,只需要提供3种型号的毛笔,外加12个颜
阅读全文
摘要:责任链模式为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。 因为最近在公司 O2O按路由规则
阅读全文
摘要:模板方法模式——在一个抽象类中定义一个操作中的算法骨架,而将一些步骤延迟到子类中去实现(对应于我们根据自己的情况向模板填充内容)。模板方法使得子类可以不改变一个算法的结构前提下,重新定义算法的某些特定步骤,模板方法模式把不变行为搬到超类中,从而去除了子类中的重复代码。 优点: 1、封装不变部分,扩展
阅读全文
摘要:单例模式(Singleton Pattern)是最简单的设计模式之一。它保证一个类仅有一个实例,并提供一个访问它的全局访问点 单例模式的实现可以分为饿汉模式和懒汉模式 饿汉单例模式 /// <summary> /// 饿汉单例模式 提前初始化对象 /// </summary> public clas
阅读全文