设计模式
qq_489366879
这个作者很懒,什么都没留下…
展开
-
【设计模式】—— 代理模式Proxy
模式意图 代理模式为其他的对象增加一个代理对象,进行访问控制。从而避免直接访问一个对象,造成效率或者安全性上的降低。 应用场景 1 远程代理,为一个远程对象,创建一个本地的代理对象。每次访问,直接访问本地代理对象即可。 2 虚代理,如果对象很大,直接访问开销很大,可以为他创建一个代理对象,只生成关键的信息即可。 3 保护代理,为某个对象增加一种保护机制,只有一原创 2017-05-22 21:58:33 · 167 阅读 · 0 评论 -
【设计模式】—— 外观模式Facade
模式意图 外观模式主要是为了为一组接口提供一个一致的界面。从而使得复杂的子系统与用户端分离解耦。 有点类似家庭常用的一键开关,只要按一个键,台灯卧室客厅的灯都亮了。虽然他们各有各自的开关,但是对外用一个来控制。 应用场景 1 为复杂系统 提供简单的接口。 2 客户程序与抽象类的实现部分分离。 3 构建层次系统时,用作入口。 模式结构原创 2017-05-22 21:42:32 · 179 阅读 · 0 评论 -
【设计模式】—— 组合模式Composite
模式意图 使对象组合成树形的结构。使用户对单个对象和组合对象的使用具有一致性。 应用场景 1 表示对象的 部分-整体 层次结构 2 忽略组合对象与单个对象的不同,统一的使用组合结构中的所有对象。 模式结构 【安全的组合模式】 这种组合模式,叶子节点,也就是单个对象不具有对象的控制功能。仅仅有简单的业务操作。 1 package com.原创 2017-05-22 21:26:28 · 176 阅读 · 0 评论 -
【设计模式】—— 桥接模式Bridge
模式意图 这个模式使用的并不多,但是思想确实很普遍。就是要分离抽象部分与实现部分。 实现弱关联,即在运行时才产生依赖关系。 降低代码之间的耦合。 模式结构 Abstraction 抽象部分的基类,定义抽象部分的基础内容。 RefinedAbstraction 抽象部分的扩充,用于对基类的内容补充,添加特定场景的业务操作。原创 2017-05-16 22:56:17 · 179 阅读 · 0 评论 -
【设计模式】—— 适配器模式Adapter
模式意图 如果已经有了一种类,而需要调用的接口却并不能通过这个类实现。因此,把这个现有的类,经过适配,转换成支持接口的类。 换句话说,就是把一种现有的接口编程另一种可用的接口。 模式结构 【类的适配器】 Target 目标接口 Adaptee 现有的类 Adapter 中间转换的类,即实现了目标接口,又继承了现有的类。原创 2017-05-16 22:38:19 · 156 阅读 · 0 评论 -
【设计模式】—— 单例模式Singleton
模式意图 保证类仅有一个实例,并且可以供应用程序全局使用。为了保证这一点,就需要这个类自己创建自己的对象,并且对外有公开的调用方法。 模式结构 Singleton 单例类,内部包含一个本身的对象。并且构造方法时私有的。 使用场景 当类只有一个实例,而且可以从一个固定的访问点访问它时。 代码结构 【饿汉模式】通过定义Stat原创 2017-05-16 22:18:13 · 186 阅读 · 0 评论 -
【设计模式】—— 创建者模式Builder
模式意图 一个对象的创建十分复杂,为了区分构建过程和使用过程,因此分开。使用一个Director类进行对象的创建,Builder规定了这个创建过程。 模式结构 Builder 抽象建造者接口,规范各个组成部分的构建。 ConcreteBuilder 具体建造者角色,实现组成部分的构建,并提供示例。 Product 产品角色,创建返原创 2017-05-16 21:59:22 · 191 阅读 · 0 评论 -
【设计模式】——工厂方法FactoryMethod
模式意图 工厂方法在MVC中应用的很广泛。 工厂方法意在分离产品与创建的两个层次,使用户在一个工厂池中可以选择自己想要使用的产品,而忽略其创建过程。 简单来说,就像一个大型的工厂,对于消费者来说,只需要知道都有什么工厂的产品生产出来,而不需要关心工厂是如何生产产品的。对于工厂来说,必须知道所有的产品的制造方法。 模式结构原创 2017-05-16 21:35:30 · 188 阅读 · 0 评论 -
【设计模式】——抽象工厂Abstract Factory
模式意图 提供对象的使用接口,隐藏对象的创建过程。 模式结构 AbstractFactory 提供创建对象的接口。 ConcreteFactory 提供真正创建对象的实现类,用于组合并创建不同的对象,实现一个产品族。 AbstractProduct 提供对象的使用接口。 ConcreteProduct 提供真正的适用对象,隐藏该对象的创建过程,是工厂创建的对象。原创 2017-05-15 23:24:18 · 207 阅读 · 0 评论 -
【设计模式】—— 中介者模式Mediator
模式意图 使用一个中介的对象,封装一组对象之间的交互,这样这些对象就可以不用彼此耦合。 这个中介者常常起着中间桥梁的作用,使其他的对象可以利用中介者完成某些行为活动,因此它必须对所有的参与活动的对象了如指掌! 应用场景 1 当一组对象要进行沟通或者业务上的交互,但是其关系却又很复杂混乱时,可以采用此模式。 2 当一个对象与其他的对象要进行紧密原创 2017-05-24 21:03:40 · 174 阅读 · 0 评论 -
【设计模式】—— 迭代模式Iterator
模式意图 提供一个方法按顺序遍历一个集合内的元素,而又不需要暴露该对象的内部表示。 应用场景 1 访问一个聚合的对象,而不需要暴露对象的内部表示 2 支持对聚合对象的多种遍历 3 对遍历不同的对象,提供统一的接口。 模式结构 Iterator 定义访问的接口 /** * 抽象的迭代,有判断结束和下一个,获取当前元素等函数 * @auth原创 2017-05-23 22:31:40 · 190 阅读 · 0 评论 -
【设计模式】—— 解释器模式Interpret
模式意图 自定义某种语言后,给定一种文法标准,定义解释器,进行解析。 做过搜索的朋友们可能更了解一些,平时我们搜索所需要的词库,通常就需要用这种方式来实现。 应用场景 1 有复杂的语法分析场景 2 需要高效的解释,胜过快速的效率(即看中解释的结果,而放弃效率) 模式结构 Expression 语法解释器的抽线模型 /** * 指定抽原创 2017-05-23 22:00:50 · 194 阅读 · 0 评论 -
【设计模式】—— 命令模式Commond
模式意图 将一个请求封装成一个对象,从而对这个命令执行撤销、重做等操作。 典型的Eclipse开发中,编辑器的操作就需要用到这个模式,比如Undo、Redo等等。 另外这个模式使得一个命令的触发与接收解耦,这样我们就可以演变成把感兴趣的对象接收这个命令,当命令触发时,这些对象就会执行操作。这个机制也是java事件的处理方式。 应用场景原创 2017-05-22 22:16:35 · 300 阅读 · 0 评论 -
【设计模式】—— 职责链模式ChainOfResponsibility
模式意图 避免请求的发送者,和接受者过度的耦合在一起。一个请求者只需要发送一个请求即可,它的请求具体由后面哪个对象进行响应,并不需要关心。而请求的接受者可以自己处理它,也可以把它像链条一样向后传。 因此,请求也就意味着有可能丢失,或者说没有确切的安全保障。 应用场景 1 降低耦合度 2 增强指派职责的灵活性 3 不保证被接受 模式结构 Han原创 2017-05-22 22:07:26 · 208 阅读 · 0 评论 -
【设计模式】—— 享元模式Flyweight
模式意图 享元模式,也叫【轻量级模式】或者【蝇量级模式】。主要目的就是为了减少细粒度资源的消耗。比如,一个编辑器用到大量的字母数字和符号,但是不需要每次都创建一个字母对象,只需要把它放到某个地方共享使用,单独记录每次创建的使用上下文就可以了。 再比如餐馆的桌子,餐具,这些都是享元模式的体现。客户是流动的,每次吃饭都是用饭店固定的那些餐具,而饭店也不需要每次新来顾客,就买新的盘子餐原创 2017-05-22 21:48:09 · 156 阅读 · 0 评论