随笔分类 -  0x05 设计模式

摘要:访问者模式通过使用一个访问者类,是主业务改变执行算法 介绍 访问者模式属于行为型模式,通过依据不同的访问者来动态调整访问方式,将数据结构和数据操作进行分离,符合单一职责原则,扩展性较好。 类图描述 代码实现 1、定义组件接口 2、定义访问者 C public class Keyboard : ICo 阅读全文
posted @ 2019-01-07 11:01 hippieZhou 阅读(365) 评论(0) 推荐(0) 编辑
摘要:在模板模式中,一个抽象类公开定义了执行它的方法的方式或方法 介绍 模板模式属于行为型模式,通过将相似的业务行为抽离出来放到抽象类中暴露给上层,然后在自己子类中实现具体的业务行为,通过模板类来约束上层的业务调用。 类图描述 代码实现 1、定义抽象基类 2、定义业务子类 3、上层调用 总结 模板方法类似 阅读全文
posted @ 2019-01-07 11:01 hippieZhou 阅读(381) 评论(0) 推荐(0) 编辑
摘要:在策略模式中,一个类的行为或其算法可以在运行时更改。 介绍 策略模式属于行为型模式,通过将一系列通用算法封装起来,使它们能够动态替换,而不是通过一大堆条件语句进行选择判断。 类图描述 代码实现 1、定义策略接口 2、实现策略 3、封装策略 4、上层调用 总结 策略模式的出现是为了解决条件语句判断的难 阅读全文
posted @ 2019-01-07 11:01 hippieZhou 阅读(273) 评论(0) 推荐(0) 编辑
摘要:在状态模式中,类的行为时基于它的状态改变而改变。 介绍 状态模式属于行为型模式,通过运行对象在内部状态发生改变时改变它的行为,主要解决的问题是对象的行为严重依赖于它的状态。 类图描述 代码实现 1、定义状态上下文 2、定义行为接口 3、定义行为 4、上层调用 总结 状态模式封装了转换规则,将每种状态 阅读全文
posted @ 2019-01-06 16:27 hippieZhou 阅读(376) 评论(0) 推荐(0) 编辑
摘要:空对象模式取代简单的 NULL 值判断,将空值检查作为一种不做任何事情的行为。 介绍 在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方。 类图描述 代码实现 1、定义抽象类 2、定义实体类 阅读全文
posted @ 2019-01-06 16:27 hippieZhou 阅读(238) 评论(0) 推荐(1) 编辑
摘要:当对象之间存在一对多的关系时,若需要进行对象之间的通知,则可使用观察者模式 介绍 观察者模式属于行为型模式,当一个对象的状态发生改变时,若我们想通知其他对象,此时可通过观察者模式来进行解决。 类图描述 代码实现 1、定义抽象观察者 2、定义观察者管理类 3、定义具体观察者 4、上层调用 总结 观察者 阅读全文
posted @ 2019-01-05 10:53 hippieZhou 阅读(307) 评论(0) 推荐(0) 编辑
摘要:备忘录模式通过保存一个对象的某个状态,以便在需要的时候恢复该对象。 介绍 备忘录模式属于行为型模式,它通过在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 类图描述 代码实现 1、创建实体类 2、创建状态处理类 3、创建储存集合 4、上层调用 总结 备忘录模式常用于数据的 阅读全文
posted @ 2019-01-01 11:06 hippieZhou 阅读(231) 评论(0) 推荐(0) 编辑
摘要:中介者模式是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。 前言 中介者模式属于行为者模式,通过一个中介对象来封装一些列的对象交互,使对象之间解耦和,降低系统复杂度。 类图描述 代码实现 1、创建中介类 2、创建实体 3、 阅读全文
posted @ 2018-12-31 18:55 hippieZhou 阅读(333) 评论(0) 推荐(0) 编辑
摘要:迭代器模式在 .Net 中使用很广泛,其循环遍历对于的集合已经实现了迭代器模式 介绍 迭代器模式属于行为型模式,它通过提供一种方法来顺序访问集合对象中的每个元素,而又不用暴露其内部表示。 类图描述 代码实现 1、创建接口 2、创建可遍历的实体类 C public class NameReposito 阅读全文
posted @ 2018-12-30 14:21 hippieZhou 阅读(320) 评论(0) 推荐(0) 编辑
摘要:解释器模式通过实现一个表达式接口,从而能够以指定方式解析指定内容 介绍 解释器模式属于行为型模式,通过这种设计模式,我们可以定义一种特定的解释器来解释特定的业务场景,可以类比不同的编程语言的编译器需要设计不同的解释器来编译执行。 类图描述 代码实现 1、定义表达式接口 2、创建接口实体 3、创建规则 阅读全文
posted @ 2018-12-28 20:24 hippieZhou 阅读(403) 评论(0) 推荐(0) 编辑
摘要:责任链模式通过为请求创建一个 接收者对象的链,对请求的发送者和接收者进行解耦。 介绍 责任链属于行为型模式,在这种模式中,通常每个接收者都包含对另一个接收者的引用,如果一个对象不能处理该请求,那么则会继续往下传递,依此类推。可以参考 C 中的事件处理程序就是采用这种思想。 类图描述 代码实现 1、创 阅读全文
posted @ 2018-12-27 17:13 hippieZhou 阅读(464) 评论(0) 推荐(0) 编辑
摘要:命令模式是一种数据驱动型的设计模式,它以命令的形式包裹在对象中,并传递给调用者。 介绍 命令模式属于行为型设计模式,它通过将一个请求封装成一个对象,从而使我们可以用不同的请求对客户端进行参数化。 类图描述 代码实现 1、创建命令接口 2、创建一个模拟请求类 3、创建命令接口的实现类 4、创建命令调用 阅读全文
posted @ 2018-12-27 17:13 hippieZhou 阅读(409) 评论(0) 推荐(0) 编辑
摘要:通过创建现有对象的对象,以便向外界通过访问接口,这种模式我们称之为代理模式 介绍 代理模式属于结构型模式,通过在对象与对象之间添加一个代理中间层来到达对目标对象的间接访问。 类图描述 由上图可知,我们通过定义一个基本接口来约束业务行为,然后定义具体的业务实现该接口,最后通过定义一个代理类来协调上层和 阅读全文
posted @ 2018-12-26 21:32 hippieZhou 阅读(399) 评论(0) 推荐(0) 编辑
摘要:享元模式主要通过共享对象的方式来减少对象的创建。 介绍 在复杂系统中,频繁创建对象是一件很耗资源的操作,为了节约系统有限的资源,我们有必要通过某种技术来减少对象的创建。在 AspNetCore 大量使用了 依赖注入 技术从而达到对象的集中式管理。 类图描述 由上图可知,通过定义一个 IShape 接 阅读全文
posted @ 2018-12-25 20:29 hippieZhou 阅读(381) 评论(0) 推荐(0) 编辑
摘要:首先需要说明的一点是,本系列文章中涉及 DotNetCore 相关内容几乎没有,之所以这样命名是为了后续系列博客做技术储备, 杠精 请出门右拐点击 关闭 按钮即可。其次,设计模式与语言无关,所以还请各位萌新不要陷入语言妄想症。 前言 关于什么是设计模式,这里简单描述描述一下: 所谓设计模式,是指软件 阅读全文
posted @ 2018-12-24 21:25 hippieZhou 阅读(691) 评论(0) 推荐(0) 编辑
摘要:外观模式通过创建新的对象访问接口,从而隐藏对象内部发复复杂性 介绍 外观模式属于结构型模式,通过定义的外观器,从而简化了具体对象的内部复杂性。这种模式通过在复杂系统和上层调用之间添加了一层,这一层对上提供简单接口,对下执行复杂操作。 类图描述 通过上图我们可以发现, IShape 为行为接口,然后 阅读全文
posted @ 2018-12-24 20:22 hippieZhou 阅读(401) 评论(0) 推荐(0) 编辑
摘要:装饰器模式允许向现有对象中添加新功能,同时又不改变其结构。 介绍 装饰器模式属于结构型模式,主要功能是能够动态地为一个对象添加额外功能。在保证现有功能的基础上,再添加新功能,可联想到 WPF 中的附件属性。 类图描述 由上图可知,我们定义了一个基础接口 IShape 用于约定对象的基础行为。然后通过 阅读全文
posted @ 2018-12-23 10:41 hippieZhou 阅读(425) 评论(0) 推荐(2) 编辑
摘要:组合模式通过将多个具有相同属性和行为的对象组装成一个类似树形结构的单一对象。以此来表示各个对象之间的层次关系。 前言 组合模式属于结构型模式,通过将多个相似对象组合到一起,从而能够构建出一个树形的 整体 部分 的关系。保证了单个对象和组合对象的使用方式是一致的。在现实场景中,类似电脑中文件夹的浏览展 阅读全文
posted @ 2018-12-22 16:20 hippieZhou 阅读(426) 评论(0) 推荐(0) 编辑
摘要:过滤器模式通过使用不同的过滤标准来筛选数据,解耦了多个数据源的数据筛选操作。 介绍 过滤器模式属于结构型模式,它通过将多个不同的过滤标准结合起来从而达到一个统一的过滤标准,使具体的过滤对上层隔离。 类图描述 由上图可知, ICriteria 定义了过滤接口,然后 CriteriaMale 、 Cri 阅读全文
posted @ 2018-12-22 16:19 hippieZhou 阅读(1589) 评论(1) 推荐(0) 编辑
摘要:使用桥接模式可以将类型的抽象和具体实现进行分离,两者通过桥接模式进行关联,从而达到解耦 介绍 桥接模式属于结构型模式。在现实世界中,我们装修房子时,布线的工人和安装空调的工人之间可以同时工作,不用互相依赖。而对于屋主人来讲也不用关系他们具体时怎么工作的,只需要等他们完成即可。在软件开发中,当我们面对 阅读全文
posted @ 2018-12-15 17:07 hippieZhou 阅读(451) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题