设计模式之桥接生成器责任链蝇量解释器

简介:
桥接模式(Bridge Pattern)
定义:将抽象部分与它的实现部分分离,使他们可以独立地变化。
Bridge 模式是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象与行为实现分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。
    桥接模式将实现和抽象放在两个不同的类层次中,从而能够使得它们可以独立改变。
    桥接模式把变化部分抽象出来,使变化部分与主类分离开来,从而将多个维度的变化彻底分离。最后,提供一个管理类来组合不同维度上的变化,通过这种组合来满足业务的需要。
    一般在抽象类中维护对行为实现(Implementor)的引用。
    在将变化的部分抽象出来,也就是将行为实现为抽象类。
    桥接主要用在跨越多个平台的图形和窗口系统上,当需要不同的方式改变接口和实现的时候。
类图:
生成器模式(Builder Pattern)
定义:将一个复杂对象的构建与它的表示分离,使同样的构建过程可以创建不同的表示
生成器模式,它封装了一个对象的构成,并且允许按照指定的步骤来构建。它允许对象通过多个步骤来创建,经常被用来创建组合对象。
生成器模式结构中的四种角色:
产品(Product): 所要构建的复杂对象。
抽象生成器(Builder): 抽象生成器是一个接口,该接口除了为创建一个Product对象的各个组件定义若干个方法外,还要定义返回Product对象的方法。
具体生成器(ConcreteBuilder): 实现Buidler接口的类。
指挥者(Director): 指挥者是一个类,需含有Builder接口申明的变量,指挥者的职责是负责向用户提供具体的生成器,利用具体生成器构造复杂的Product对象,它可以指定生成对象的步骤顺序。
生成器类图:
责任链模式(Chain of Responsiblity Pattern)
定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。
    责任链模式是一种对象的行为模式,当你想要让一个或者多个对象都能有机会对同一个请求进行处理的时候,可以使用该模式,责任链模式是Web项目中最经常用到的一个设计模式,比如是Apache Tomcat 的对Encoding的 处理,Struts2 的拦截器等等,都是基于责任链模式设计的。
   通过使用责任链模式,可以为某一个请求创建一个对项链,每个对象扮演者处理器角色,并且都有一个后继对象。
类图:
蝇量(享元)模式(Flyweight Pattern)
定义:运用共享技术有效地支持大量细粒度的对象
    如果想让某一个类的实例能够用来提供许多“虚拟实例”的话,
享元模式的重点在于分离变与不变。把一个对象的状态分成内部状态和外部状态,内部状态是不变的,外部状态是可变的。然后通过共享不变的部分,达到减少对象数量并节约内存的目的。
内部状态:通常指包含在享元对象内部的、对象本身的状态,不会随享元环境而变化,因此可共享。
外部状态:是享元对象之外的状态,取决于使用享元的场景,会根据使用场景而变化,因此不可共享。
外部状态和内部状态是相互独立的,外部状态的变换不会因起内部状态的变化。
享元对象的优点:减少对象数量,节省内存空间。
享元模式的缺点:维护共享对象,需要额外的开销(用一个线程来维护垃圾回收)。
享元模式的本质:分离与共享。
当一个类有许多个实例的时候,而这些实例能被同一个方法控制的时候,可以使用该模式
解释器模式(Interpreter Pattern)
定义:为语言创建解释器。
解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。
它主要对每一个语法规则表示成一个类,方便于实现。



本文转自 zhao_xiao_long 51CTO博客,原文链接:http://blog.51cto.com/computerdragon/1178930
相关文章
|
4月前
|
设计模式 Java
常用设计模式(工厂方法,抽象工厂,责任链,装饰器模式)
有关设计模式的其他常用模式请参考 单例模式的实现 常见的设计模式(模板与方法,观察者模式,策略模式)
40 2
|
1月前
|
设计模式 Java Spring
责任链设计模式详解
该内容主要介绍了如何使用Java实现责任链模式。
31 4
|
4月前
|
设计模式 算法 调度
行为型设计模式:模板设计模式/观察者设计模式/策略设计模式/责任链设计模式
行为型设计模式:模板设计模式/观察者设计模式/策略设计模式/责任链设计模式
34 0
|
5月前
|
设计模式
二十三种设计模式全面解析-职责链模式(Chain of Responsibility Pattern):解放代码责任链,提升灵活性与可维护性
二十三种设计模式全面解析-职责链模式(Chain of Responsibility Pattern):解放代码责任链,提升灵活性与可维护性
|
7月前
|
设计模式 Java 数据库连接
JAVA设计模式8:装饰模式,动态地将责任附加到对象上,扩展对象的功能
JAVA设计模式8:装饰模式,动态地将责任附加到对象上,扩展对象的功能
|
11月前
|
设计模式 存储 Java
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
176 0
|
11月前
|
设计模式 存储 SQL
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)
105 0
|
12月前
|
设计模式 分布式计算 大数据
大数据开发基础的设计模式的责任链
当涉及大数据的开发时,设计模式是至关重要的。其中一种常见的设计模式是责任链模式,它可以有效地处理多个对象之间的请求。
66 0
|
设计模式 前端开发 数据安全/隐私保护
前端通用编程基础的设计模式之责任链
在前端开发中,我们常常需要处理一些复杂的业务逻辑,例如表单验证、权限控制等。这些业务逻辑可能需要经过多个步骤才能完成,每个步骤都需要进行具体的处理和判断。这时候就需要使用责任链模式来实现业务逻辑的流程化和扩展性。
104 0
|
设计模式 前端开发 JavaScript
前端通用编程基础的设计模式之责任链
在前端开发中,我们经常需要处理复杂的业务逻辑和数据流转。为了解决这些问题,设计模式中的责任链模式可以帮助我们快速地构建一个多级处理机制,从而使得代码更加简洁、可维护并且易于扩展。
82 0