![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
我可能是个假开发
hongcaixia
展开
-
外观模式
外观模式 一、概念 外观模式的主要目的在于让外部减少与子系统内部多个模块的交互,从而让外部能够更简单得使用子系统。它负责把客户端的请求转发给子系统内部的各个模块进行处理。 主要负责组合已有功能来实现客户端请求,不会添加新功能的实现。 二、使用场景 要为一个复杂子系统提供一个简单接口时。 客户程序与抽象类的实现部分之间存在着很大的依赖性 需要构建一个层次结构的子系统时。 三、UML结构 四、代...原创 2019-01-13 18:52:43 · 184 阅读 · 0 评论 -
代理模式
代理模式 一、概念 代理模式是指,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户类和目标对象之间起到中介的作用。 使用代理对象,是为了在不修改目标对象的基础上,增强主业务逻辑。 客户类真正的想要访问的对象是目标对象,但客户类真正可以访问的对象是代理对象。 客户类对目标对象的访问是通过访问代理对象来实现的。 代理类与目标类要...原创 2019-05-02 19:24:04 · 266 阅读 · 0 评论 -
装饰模式
装饰模式 一、概念 装饰模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。装饰模式是一种对象结构型模式。 定义一个抽象的装饰类,将具体的装饰类作为其子类,然后继承具体的装饰类。 二、使用场景 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。 当不能采用继承的方式对系统进行扩展或者采用继承不利于系统扩...原创 2019-02-13 15:18:43 · 224 阅读 · 0 评论 -
观察者设计模式
观察者设计模式 一、概念 定义对象之间的一种一对多的依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。 二、使用场景 一个抽象模型有两个方面,其中一个方面依赖于另一个方面 一个对象的改变将导致一个或多个其他对象也发生改变 需要在系统中创建一个触发链(A对象的行为会影响B对象,B对象的行为又会影响C对象,从而形成了一个链) 三、UML结构图 四、代码示例 案例一:...原创 2019-01-22 13:22:31 · 494 阅读 · 0 评论 -
责任链模式
责任链模式 一、概念 是一个请求有多个对象来处理,这些对象是一条链,但具体由哪个对象来处理,根据条件判断来确定,如果不能处理会传递给该链中的下一个对象,直到有对象处理它为止。 二、使用场景 有多个对象可以处理同一个请求,具体哪个对象处理该请求待运行时刻再确定。 在不明确指定接受者的情况下,向多个对象中的一个提交一个请求。 可动态指定一组对象处理请求,客户端可以动态创建职责链来处理请求。 三、U...原创 2019-01-16 13:46:49 · 338 阅读 · 0 评论 -
单例设计模式
单例设计模式 单例设计模式是一种对象创建模式,用于产生一个对象的具体实例,它可以确保系统中一个类只产生一个实例。 好处: 对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销。 由于new操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻GC压力,缩短GC停顿时间。 单例模式的六种写法: 一、饿汉单例设计模式 步骤: 私有化构造函数。 ...原创 2019-01-11 18:52:37 · 148 阅读 · 0 评论 -
模版方法模式
模版方法模式 一、什么是模版方法模式 模板模式 :解决某类事情的步骤有些是固定的,有些是会发生变化的,那么这时候我们可以为这类事情提供一个模板代码,从而提高效率。 1.生活中的模版: 办理银行业务: 进门取号 填写单据(每个客户填写的单据都不一样,因业务不同而不同) 等待叫号 窗口办理 二、如何实现模版方法模式 1.模版方法模式的实现要素 准备一个抽象类,将部分逻辑以具体方法的形式实现,然后声...原创 2019-01-09 15:56:10 · 423 阅读 · 0 评论 -
策略模式
策略模式 一、概念 定义一系列的算法,把他们一个个封装起来,并且使他们可互相替换。本模式使得算法可独立于使用它的客户而变化。 二、使用场景 一个类定义了多种行为,并且这些行为在这个类的方法中以多个条件语句的形式出现,那么可以使用策略模式避免在类中使用大量的条件语句。 三、UML结构图 通过一个持有算法的Context上下文对象,来封装一系列的算法。 Context对象并不负责具体决定哪个算法,而...原创 2019-01-14 15:36:05 · 686 阅读 · 0 评论 -
组合模式
组合模式 一、概念 将对象以树形结构组织起来,以达成“部分-整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。 树的结构->组合设计模式 二、使用场景 需要表示一个对象整体或部分层次 让客户能够忽略不同对象层次的变化 三、UML结构 四、代码示例 File: public abstract class File { private String name; pu...原创 2019-01-13 18:54:41 · 228 阅读 · 0 评论 -
适配器模式
适配器模式 一、适配器模式定义 适配器模式的定义是,Convert the interface of a class into another interface clients expect,将某个类的接口转换为接口客户所需的类型。 适配器模式解决的问题是,使得原本由于接口不兼容而不能一起工作、不能统一管理的那些类可以在一起工作、可以进行统一管理。 将一个接口转换成客户希望的另一个接口,适配器模...原创 2019-05-06 19:17:12 · 262 阅读 · 0 评论