摘要:jdk的动态代理的条件: >要实现动态代理的首要条件是:被代理类必须实现一个接口,回想一下前面的分析吧。当然了,现在也有很多技术如CGLIB可以实现不需要接口也可以实现动态代理的方式。 动态代理的应用 代理模式应用得非常广泛,大到一个系统框架、企业平台,小到代码片段、事务处理,稍不留意就用到代理模式
阅读全文
摘要:一:桥梁模式定义 --->桥梁模式(Bridge Pattern)也叫做桥接模式,是一个比较简单的模式 --->将抽象和实现解耦,使得两者可以独立地变化。二:桥梁模式角色● Abstraction——抽象化角色 它的主要职责是定义出该角色的行为,同时保存一个对实现化角色的引用,该角色一般是抽象类。●
阅读全文
摘要:一:享元模式定义 --->享元模式(Flyweight Pattern)是池技术的重要实现方式 --->使用共享对象可有效地支持大量的细粒度的对象 --->要求细粒度对象,那么不可避免地使得对象数量多且性质相近,那我们就将些对象的信息分为两个部分:内部状态(intrinsic)与外部状态(extri
阅读全文
摘要:一:解析器模式定义 --->解释器模式(Interpreter Pattern)是一种按照规定语法进行解析的方案,在现在项目中使用较少 --->给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子二:解析器模式角色● AbstractExpression——抽
阅读全文
摘要:一:状态模式定义 --->当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类 --->状态模式的核心是封装,状态的变更引起了行为的变更,从外部看起来就好像这个对象对应的类发生了改变一样 --->状态模式相对来说比较复杂,它提供了一种对物质运动的另一个观察视角,通过状态变更促使行为的变
阅读全文
摘要:一:访问者模式定义 --->封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。二:访问者模式角色● Visitor——抽象访问者 抽象类或者接口,声明访问者可以访问哪些元素,具体到程序中就是visit方法的参数定义哪些对象是可以被访问的。● Co...
阅读全文
摘要:《一:备忘录模式的定义 --->备忘录模式(Memento Pattern)提供了一种弥补真实世界缺陷的方法,让“后悔药”在程序的世界中真实可行 --->在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 --->通俗地说,备忘录模...
阅读全文
摘要:一:门面模式的定义 --->门面模式(Facade Pattern)也叫做外观模式,是一种比较常用的封装模式 --->要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。 --->门面模式注重“统一的对象”,也就是提供一个访问子系统的接口...
阅读全文
摘要:一:观察者模式的定义 --->观察者模式(Observer Pattern)也叫做发布订阅模式(Publish/subscribe),它是一个在项目中经常使用的模式 --->定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新二:观察者模式的角色● ...
阅读全文
摘要:一:组合模式的定义 --->组合模式(Composite Pattern)也叫合成模式,有时又叫做部分-整体模式(Part-Whole),主要是用来描述部分与整体的关系 --->将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。二:组合模式的角色 ● ...
阅读全文
摘要:一:迭代器模式的定义 --->迭代器模式(Iterator Pattern)目前已经是一个没落的模式,基本上没人会单独写一个迭代器,除非是产品性质的开发 --->它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。 --->迭代器是为容器服务的,那什么是容器呢? 能容纳对象的所有...
阅读全文
摘要:一:适配器模式的定义 --->一个补救模式,这种模式可以让你从因业务扩展而系统无法迅速适应的苦恼中解脱而出。 --->贫血对象和充血对象,这两个名词很简单,在领域模型中分别叫做贫血领域模型和充血领域模型,有什么区别呢?一个对象如果不存储实体状态以及对象之间的关系,该对象就叫做贫血对象,对应的领域模型...
阅读全文
摘要:一:策略模式的定义 --->是一种比较简单的模式,也叫做政策模式 --->定义一组算法,将每个算法都封装起来,并且使它们之间可以互换二:策略模式的三个角色● Context封装角色 --->它也叫做上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。● Strat...
阅读全文
摘要:一:装饰模式的定义 --->动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 --->如果大家还记得代理模式,那么很容易看懂这个类图,装饰类的作用也就是一个特殊的代理类. --->在装饰模式中,必然有一个最基本、最核心、最原始的接口或抽象类充当Component抽象...
阅读全文
摘要:一:责任链模式的定义 --->使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 --->责任链模式的重点是在“链”上,由一条链去处理相似的请求在链中决定谁来处理这个请求,并返回相应的结果 --->一般会有一...
阅读全文
摘要:一:命令模式的定义 --->命令模式是一个高内聚的模式 --->将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 --->命令模式的角色 ● Receive接收者角色==>该角色就是干活的角色,命令传递到这里是应该被执行的 ●...
阅读全文
摘要:一:中介模式的定义 --->用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 --->中介模式的组成部分: ● Mediator 抽象中介者角色:抽象中介者角色定义统一的接口,用于各同事角色之间的通信。 ● Concrete...
阅读全文
摘要:一:原型模式的定义 --->用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 --->原型模式(Prototype Pattern)的简单程度仅次于单例模式和迭代器模式。正是由于简单,使用的场景才非常地多 --->原型模式的核心是一个clone方法,通过该方法进行对象的拷贝,Java提...
阅读全文
摘要:一:建造者模式的定义 --->建造者模式(Builder Pattern)也叫做生成器模式,其定义如下:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 ● Product产品类 通常是实现了模板方法模式,也就是有模板方法和基本方法,这个参考模板方法模式。例子中的BenzMo...
阅读全文
摘要:一:模板方法模式的定义 --->定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 --->模板方法模式确实非常简单,仅仅使用了Java的继承机制,但它是一个应用非常广泛的模式。其中,AbstractClass叫做抽象模板,它的方法...
阅读全文