分类目录 : Java

浅谈ServiceLoader

本文主要介绍ServiceLoader类,首先介绍ServiceLoader的简单使用,以及它可以达到什么样的效果,然后介绍了ServiceLoader的实现原理,最后通过对ServiceLoader源码的理解,自定义实现一个简单的类似ServiceLoader的功能。 引言 ServiceLoader是JDK1.6基于SPI(Service Provider Interfaces)思想新引入 [...]

设计模式总结篇二

本文是设计模式阶段性总结的最后一篇,在上一篇中对设计模式做了简单的归类,并对创建型模式进行了梳理对比,接下来继续梳理结构型和行为型相关的设计模式,其中结构型设计模式7种,行为型模式11种。结构型设计模式是对类和对象的组织方式进行的介绍,行为型设计模式是对类和对象之间通信进行的介绍,结构和行为设计也是软件设计中非常最要的一个环节。 学习并理解设计模式是“做什么”的可能比较容易,但是“为什么”可能需 [...]

设计模式总结篇一

设计模式被推崇至浪潮之巅应该是在GOF设计模式一书发布后,其实这里并不是说在此之前设计模式并不存在。在设计模式一书还没发布之前,好的代码已经在按照某种固定的模式进行实现,只是没有人进行系统地梳理成册,直到GOF四人组出现,才终于开创了设计模式这一概念。 1995年,有四位作者:Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides发表了一本题为 [...]

Java设计模式-原型模式

原型(Prototype)模式,在23种设计模式中属于对象创建型模式。 原型模式就是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 引言 初次接触原型模式,如果仅根据模式名称判断,可能并不确定这种设计模式究竟是做什么的。不过,因为由于以前有了解过Java服务端开发,所以有印象S2SH框架有使用过prototype关键字,估计现在很少用S2SH框架了,基本都是Spring全家 [...]

Java设计模式-迭代器模式

迭代器(Iterator)模式,有时也被称为游标(Cursor)模式,在23种设计模式中属于对象行为型模式。 迭代器模式提供了一种顺序方法用于访问聚合对象中的各个元素,而又不暴露该对象的内部表示。 引言 从接触设计模式以来,其实心中一直有一个疑问,为什么要把迭代器作为一种设计模式单独介绍呢?之所以有这个疑问,可能也与我接触的编程语言有关系。Java作为自己平常开发中最常使用的语言,它的JDK [...]

Java设计模式-解释器模式

解释器(Interpreter)模式,在23种设计模式中属于类行为型模式。 解释器模式:定义一个语言的文法,并建立一个解释器用于解释该文法表示的句子。 引言 在平常开发中解释器模式是一种使用频率低难度相对较大的设计模式,它用于描述如何使用面向对象的方式来构成一个简单的语言解释器。在某些场景下,为了更好地描述某些特定问题,有时会创建一门新的语言,这种语言拥有自己的表达式和结构,即文法规则,然后 [...]

Java设计模式-访问者模式

访问者(Visitor)模式,在23种设计模式中属于对象行为型模式,也是Java语言模拟双分派机制的一种实现方式。 访问者模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 引言 在GOF定义的23中设计模式中,除去本文所介绍的一种模式之外,还剩解释器模式、迭代器模式以及原型模式。其实,本来想整理一下其它方向的内容,但是后来想想,已 [...]

Java设计模式-组合模式

组合(Composite)模式,在23种设计模式中属于对象结构型模式。 组合模式将对象整理成树形结构以表示“部分-整体”的层次结构,它可以使用户对单个对象和组合对象的操作具有一致性。 模式介绍 从接触面向对象语言起,我们就被告知封装、继承和多态是面向对象的三大特性,其中继承和多态中的重写特性更是使用继承机制的直观体现。随着时间的推移,我们对面向对象语言的经验理解也不断增强,在各种编程实践书籍 [...]

Java设计模式-中介者模式

中介者(Mediator)模式,在23种设计模式中属于对象行为型模式。 用一个中介对象封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 模式介绍 在平常开发的业务场景中,可能会遇到多个对象交叉引用的情况,而且这些对象之间的行为还相互影响。各个对象之间的交互犹如一张蜘蛛网一样,一个对象的行为会影响其它一个或多个对象,同样的,自己也会 [...]

Java设计模式-享元模式

享元(Flyweight)模式,有时也被称为蝇量模式或者轻量级模式,在23种设计模式中属于对象结构型模式。 享元模式是运用共享技术有效地支持大量细粒度对象的复用。 模式介绍 在平常面向对象的软件开发中,偶尔会遇到这种场景,业务比较复杂,需要构建大量的对象,但是这些对象又很相似,状态变化比较小。比如设计一款围棋游戏、丛林探险类游戏或者常见的文本处理软件,在这些场景中棋子、树木或者字符都被设计为 [...]

Java设计模式-备忘录模式

备忘录(Memento)模式,有时也被称为快照(Snapshot)模式或者Token模式,在23种设计模式中属于对象行为型模式。 备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。 模式介绍 备忘录模式,直接根据模式名称理解它的使用场景可能让人有些困惑,其实备忘录模式提供的就是软件实现中的一种历史记录机制,或者说是 [...]

Java设计模式-模板方法

模板(Template Method)方法模式,在23种设计模式中属于类行为型模式。 模板方法模式在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 模式介绍 无论是对后台或者前端开发人员,相信模板这个词应该都不会感到陌生。前端的模板框架template.js,初始学jsp时include指令或者include [...]

Java设计模式-命令模式

命令(Command)模式,有时也被称为动作(Action)模式或者事务(Transaction)模式,在23种设计模式中属于对象行为型模式。 命令模式将请求封装成对象,以便使用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。 模式介绍 在开发中,请求响应的场景非常常见,一般会把请求的响应操作封装到一个方法中,比如在Servlet中可以把这种操作放在doGet( [...]

Java设计模式-装饰模式

装饰(Decorator)模式,有时也被称为包装(Wrapper)模式,在23种设计模式中属于对象结构型模式。 装饰模式以对客户端透明的方式扩展对象的功能,换句话说,客户端并不会觉得对象在装饰前和装饰后有什么区别。装饰者提供了比继承更有弹性的替代方案。 模式介绍 下图可以更方便理解装饰模式。 在图片中第二列展示的是不同风格的相框,如果使用继承机制,那么最后一列的相框风格就不是第二列的后 [...]

Java设计模式-状态模式

状态(State)模式有时也称为状态对象(Objects for States)模式,在23种设计模式中属于对象行为型模式。 《GOF设计模式》一书中是这样定义状态模式的,状态模式允许一个对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 适用性 对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。 一个操作中含有庞大的多分支的条件语句,且这些分支依赖 [...]
共 4 页 1 2 3 4