2018年6月18日

C#设计模式总结

摘要: 一、 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性。并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则、开放封闭原则、里氏代替原则、依赖倒置原则、接口隔离原则、合成复用原则和迪米特法则。下面就分别介绍了每种设计原则。 1.1 单一职责原则 就一 阅读全文

posted @ 2018-06-18 20:48 SuperSnowYao 阅读(534) 评论(1) 推荐(0) 编辑

【23】备忘录模式(Memento Pattern)

摘要: 一、引言 在上一篇博文分享了访问者模式,访问者模式的实现是把作用于某种数据结构上的操作封装到访问者中,使得操作和数据结构隔离。而今天要介绍的备忘者模式与命令模式有点相似,不同的是,命令模式保存的是发起人的具体命令(命令对应的是行为),而备忘录模式保存的是发起人的状态(而状态对应的数据结构,如属性)。 阅读全文

posted @ 2018-06-18 19:38 SuperSnowYao 阅读(222) 评论(0) 推荐(0) 编辑

【22】访问者模式(Visitor Pattern)

摘要: 一、引言 在这篇博文中,我将为大家分享我对访问者模式的理解。 二、访问者模式介绍 2.1 访问者模式的定义 访问者模式是封装一些施加于某种数据结构之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保存不变。访问者模式适用于数据结构相对稳定的系统, 它把数据结构和作用于数据结构之上的操 阅读全文

posted @ 2018-06-18 19:06 SuperSnowYao 阅读(184) 评论(1) 推荐(0) 编辑

【21】责任链模式

摘要: 一、引言 在现实生活中,有很多请求并不是一个人说了就算的。例如面试时的工资,低于1万的薪水可能技术经理就可以决定了,但是1万~1万5的薪水可能技术经理就没这个权利批准,可能就需要请求技术总监的批准。所以在面试的完后,经常会有面试官说,你这个薪水我这边觉得你这技术可以拿这个薪水的,但是还需要技术总监的 阅读全文

posted @ 2018-06-18 18:19 SuperSnowYao 阅读(234) 评论(0) 推荐(0) 编辑

【20】策略者模式(Strategy Pattern)

摘要: 一、引言 本文要介绍的策略模式也就是对策略进行抽象,策略的意思就是方法,所以也就是对方法的抽象,下面具体分享下我对策略模式的理解。 二、策略者模式介绍 2.1 策略模式的定义 在现实生活中,策略模式的例子也非常常见。例如,中国的所得税,分为企业所得税、外商投资企业或外商企业所得税和个人所得税。针对于 阅读全文

posted @ 2018-06-18 15:54 SuperSnowYao 阅读(220) 评论(0) 推荐(0) 编辑

【19】中间者模式(Mediator Pattern)

摘要: 一、引言 在现实生活中,有很多中介者模式的身影,例如QQ游戏平台,聊天室、QQ群和短信平台,这些都是中介者模式在现实生活中的应用,下面就具体分享下我对中介者模式的理解。 二、 中介者模式的介绍 2.1 中介者模式的定义 从生活中的例子可以看出,不论是QQ游戏还是QQ群,它们都是充当一个中间平台。QQ 阅读全文

posted @ 2018-06-18 14:46 SuperSnowYao 阅读(407) 评论(0) 推荐(0) 编辑

【18】观察者模式(Observer Pattern)

摘要: 一、引言 在现实生活中,处处可见观察者模式。例如,微信中的订阅号,订阅博客和QQ微博中关注好友,这些都属于观察者模式的应用。在这一章将分享我对观察者模式的理解,废话不多说了,直接进入今天的主题。 二、 观察者模式的介绍 2.1 观察者模式的定义 从生活中的例子可以看出,只要对订阅号进行关注的客户端, 阅读全文

posted @ 2018-06-18 13:54 SuperSnowYao 阅读(150) 评论(0) 推荐(0) 编辑

【17】迭代器模式(Iterator Pattern)

摘要: 一、引言 在上篇博文中分享了我对命令模式的理解,命令模式主要是把行为进行抽象成命令,使得请求者的行为和接受者的行为形成低耦合。在这一章中,将介绍一下迭代器模式。 二、迭代器模式的介绍 迭代器是针对集合对象而生的。对于集合对象而言,必然涉及到集合元素的添加删除操作,同时也肯定支持遍历集合元素的操作。我 阅读全文

posted @ 2018-06-18 12:37 SuperSnowYao 阅读(200) 评论(0) 推荐(0) 编辑

【16】命令模式(Command Pattern)

摘要: 一、前言 最近项目中发现,对于设计模式的了解是必不可少的,当然对于设计模式的应用那更是重要,可以说是否懂得应用设计模式在项目中是衡量一个程序员的技术水平,因为对于一个功能的实现,高级工程师和初级工程师一样都会实现,但是区别在于它们实现功能的可扩展和可维护性,也就是代码的是否“优美”、可读。但是,要更 阅读全文

posted @ 2018-06-18 10:40 SuperSnowYao 阅读(188) 评论(0) 推荐(0) 编辑

【15】模板方法模式(Template Method)

摘要: 一、引言 提到模板,大家肯定不免想到生活中的“简历模板”、“论文模板”、“Word中模版文件”等。在现实生活中,模板的概念就是——有一个规定的格式,然后每个人都可以根据自己的需求或情况去更新它。例如简历模板,下载下来的简历模板的格式都是相同的,然而我们下载下来简历模板之后,我们可以根据自己的情况填充 阅读全文

posted @ 2018-06-18 00:32 SuperSnowYao 阅读(242) 评论(0) 推荐(0) 编辑

导航