随笔分类 - 设计模式
摘要:装饰者模式要点: 声明一个基类(抽象类型),定义基本的动作方法。声明一个起点类继承实现这个基类,然后定义N个装饰者类也继承并实现这个基类。无论是起点类还是装饰者类,他们的共同特点是:继承基类性类别,并传入基类型参数,并针对实体参数做进一步操作,当然也可以忽略传入的参数,做覆盖处理。 实例: publ
阅读全文
摘要:状态模式:state。 1.该模式适用于某一事物流程性处理,并且每个流程大致处理相同的情况。 2.基本思路。将每个处理步骤独立出来,形成自己的处理逻辑,处理完成后,指定下一处理步骤。 3.核心思想。设置一个接口和公共类,每个子类实现接口类型,然后将公共类的实例传递给第一个子类,子类实例处理完自己步骤
阅读全文
摘要:C#中的lock语句是怎么回事,有什么作用?C#中的lock语句将lock中的语句块视为临界区,让多线程访问临界区代码时,必须顺序访问。他的作用是在多线程环境下,确保临界区中的对象只被一个线程操作,防止出现对象被多次改变情况。注意的地方有:lock对象必须是一个不可变对象,否则无法阻止另一个线程进入...
阅读全文
摘要:模板模式【Template】在父类中定义好算法的骨架、顺序等。并且可以实现一部分子类不需要覆盖的算法。其余部分算法推迟到子类中实现。并且子类中也可以覆盖父类中的算法。最终,由父类作为计算的起点,父类调用子类中的部分算法,完成整个运算过程。该模式运用c#语言重载、继承特性来实现,广泛应用于账目计算等方面,只要算法骨架相似即可应用该模式。
阅读全文
摘要:外观模式:将一对多或者是多对多的调用关系转变为一对一的调用关系。为调用者提供统一的调用接口,降低调用与被调用之间的耦合度。应用场景:在人事系统中根据当前用户的权限查看某一员工的薪资单,此时,可以运用外观模式,将当前用户的权限验证与薪资单查询组合起来,统一提供一个接口。Public Interface IvalidateUser{...} Public Interface IemployeePayr...
阅读全文
摘要:适配器模式定义:将一种接口转换为另一种接口。适配器模式解决问题:用于解决两种接口不兼容问题,为两种接口的转换提供适当处理。应用场景:对原有系统进行扩展时,需要应用到原系统的一个或多个功能,使之在适配器模式的组合转换下,提供新的应用功能。示例:Public Interface A{...} Public Interface B{...}Public A Adapter(B b){...}
阅读全文
摘要:策略模式:strategy。 1.该模式适用于某一事物具有多套算法,并且算法相互替换的情形。 2.基本思路。利用开发语言的特性,将特定算法独立出来,在超类中添加独立算法接口的引用。具体在实现该超类的子类中,负责将动作接口指向具体的(接口)实现类。从而达到只修改局部,不影响全局的目的。 3.核心思想。
阅读全文