自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

@黄小泽的个人博客

历年工作中供职项目主管、高级前端开发工程师、前端部门经理,博客内容将专注于前端领域学习和经验分享

  • 博客(23)
  • 资源 (8)
  • 收藏
  • 关注

原创 Java设计模式(23)行为型:解释器模式

(一)模式概念解释器模式是指定义语言的文法,并且建立一个解释器来解释该语言中的句子。它属于类的行为模式。这里的语言意思是使用规定格式和语法的代码。如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。而且当文法简单、效率不是关键问题的时候效果最好。说白了,就是能解释上下文时通过代码即可

2016-12-29 19:05:39 426

原创 Java设计模式(22)行为型:中介者模式

(一)模式概念中介者模式是指用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。该模式只需关心和Mediator类的关系,具体类类之间的关系及调度交给中介者就行。(二)模式结构1)抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并由子类去实现。2)

2016-12-29 18:45:45 423

原创 Java设计模式(21)行为型:访问者模式

(一)模式概念访问者模式表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。访问者模式适用于数据结构相对稳定算法又易变化的系统,若系统数据结构对象易于变化,则不适合使用访问者模式。访问者模式的优点是增加操作很容易,因为增加操作意味着增加新的访问者。(二)模式结构1)Visitor 抽象访问者角色:为该对象结构中具体元素角色声明一个

2016-12-29 16:49:34 343

原创 Java设计模式(20)行为型:状态模式

(一)模式概念状态模式是指一个对象在其内部状态改变时改变它的行为。状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。(二)模式结构1)状态接口定义一个接口,负责约定状态执行的方法和变量。2)状态实现者负责具体的状态接口实现,一般为枚举类型。3)状态管理者负责状态条件的判断

2016-12-29 11:05:17 414

原创 Java设计模式(19)行为型:备忘录模式

(一)模式概念备忘录模式是指在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。 备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。(二)模式结构1)Originator(发起人):负责创建一个备忘录Memento,

2016-12-28 16:41:52 395

原创 Java设计模式(18)行为型:命令模式

(一)模式概念在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)。命令模式的目的就是达到命令的发出者和执行者之间解耦,实现请求

2016-12-28 14:15:40 393

原创 Java设计模式(17)行为型:责任链模式

在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。通常来说,一个纯粹的责任链是先传给第一个处理,如果处理过了,这个请求处理就此结束,如果没有处理,再传给下一个处理者。这样使很多个对象都有机会处理

2016-12-28 10:34:28 387

原创 Java设计模式(16)行为型:迭代器模式

迭代器模式提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。访问一个聚合对象的内容而无需暴露它的内部表示支持对聚合对象的多种遍历,为遍历不同的聚合结构提供一个统一的接口。迭代器模式可以直接使用原生JDK中提供的方法:java.util.Iterator;,如:import java

2016-12-27 18:24:28 365

原创 Java设计模式(15)行为型:观察者模式

观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。观察者模式(Observer)完美的将观察者

2016-12-27 17:40:18 358

原创 Java设计模式(14)行为型:模板方法模式

模板方法模式是指定义一个操作中算法的骨架,而将一些步骤延迟到子类中。设计者需要给出一个算法的固定步骤,并将某些步骤的具体实现留给子类来实现。具体模板实现算法细节不会改变整个算法的骨架,但注意要将各个子类公共行为提取出来集中到一个共同的父类中以避免代码重复。AbstractTemplate类,定义逻辑顺序并将实现过程定义为抽象方法。public abstract class Ab

2016-12-27 17:14:50 354

原创 Java设计模式(13)行为型:策略模式

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的维护性和扩展性。策略模式一个很大的特点就是各个策略算法的平等性。对于一系列具体的策略算法,大家的地位是完全一样的,正因为这个平等性,才能实现算法之间可以相互替换。所有的策略算法在实现上也

2016-12-27 15:47:34 352

原创 Java设计模式(12)结构型:享元模式

享元模式是指使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。使用享元可以节省内存的开销,特别适合处理大量细粒度对象,这些对象的许多属性值是相同的,而且一旦创建则不允许修改。 享元模式中的享元可以使用方法的参数接收外

2016-12-27 15:26:05 301

原创 Java设计模式(11)结构型:组合模式

组合模式是指将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 "组合对象" 的含义。经典案例:系统目录结构,网站导航结构等。经典案例:系统目录结构,网站导航结构等。组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念 ,客户程序

2016-12-26 18:22:48 288

原创 Java设计模式(10)结构型:桥接模式

桥接模式是指将抽象化与实现化解耦,使得二者可以各自独立变化,增加新的具体实现者,不需要修改细化抽象,反之增加新的细化抽象也不需要修改具体实现。该模式的主要需求在于满足某些类有两个或多个维度的变化时使用。(注)如连接数据库JDBC桥,就是通过桥接模式实现。

2016-12-26 17:52:21 368

原创 Java设计模式(9)结构型:外观模式

外观模式是指为定义一个高层接口,这个接口使得这一子系统更加容易使用。换句话说就是客户对象通过一个接口读写子系统中各接口的数据资源,降低了类类之间的耦合度。以计算机开机和关机为例,如计算机开机会先启动CPU,继而启动缓存和硬盘,CPU、缓存和硬盘之间的启动有先后交互关系。这时可以使用装饰模式,定义一个高层接口,来解耦3个组件之间的关系。CPU实体类:public class CP

2016-12-23 18:28:57 394

原创 Java设计模式(8)结构型:代理模式

代理模式为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式可以屏蔽用户真正请求的对象,是用户程序和正在的对象解耦。 使用代理来担当那些创建耗时的对象的替身。代理模式由3种角色组成,分别是:1)抽象角色:通过接口或抽象类声明真实角色实现的业务方法。2)代理角色:实现抽象角色,是真实

2016-12-23 17:48:45 419

原创 Java设计模式(7)结构型:装饰模式

装饰模式是指在不必改变原类文件和使用继承的情况下,通过创建一个包装对象,在新对象中引用原对象以实现扩展原对象的功能。该模式与对象适配器模式单从代码结构上来说基本一致,甚至两者都可叫做包装模式。但是从业务上来说,两者就有区别,适配器模式是针对接口而言,适配兼容用户对旧接口的不满足的需求;而装饰模式是对现有对象的功能进行升级增强。举个例子:如书店卖道德经这本书,适配器模式就是中文版还是韩文版,书本的文

2016-12-21 18:46:58 317

原创 Java设计模式(6)结构型:适配器模式

适配器模式是指将一个不兼容的类的接口适配成用户所期待的接口。该模式的宗旨是保留现有类所提供的服务,向客户提供接口,以满足客户的期望。在实际应用中,往往会根据用户的需求来确定使用适配器模式是为用户提供适配的新接口还是在原有接口中修改实现适配(本文例子中均以扩展新接口为例列举)。适配器模式有两种实现方式:1)类适配器模式。指继承原有实体类并实现扩展接口。2)对象适配器模式。仅通过接口实现,重写

2016-12-21 17:12:36 455

原创 Java设计模式(5)创建型:原型模式

原型模式是指用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节。工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。它主要面对的问题是:某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比

2016-12-20 17:29:49 339

原创 Java设计模式(4)创建型:生成器模式

生成器模式,又叫建造者模式,指将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。当系统准备为用户提供一个内部结构复杂的对象,并且在构造方法中编写创建该对象的代码无法满足用户需求时,就可以使用生成器模式来构造这样的对象。

2016-12-20 15:55:03 517

原创 Java设计模式(3)创建型:单例模式

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问。对于系统中的某些类来说,只有一个实例很重要,例如,一个系

2016-12-19 18:48:43 386

原创 Java设计模式(2)创建型:工厂模式(工厂方法模式与抽象工厂模式)

工厂模式属于创建型设计模式,包括工厂方法模式和抽象工厂模式。凡是出现了大量的产品需要创建,并且具有共同的接口时,都可以通过工厂模式进行创建。(一)工厂方法模式工厂方法模式通过演变发展,有3种编码写法,以发送邮件和SMS信息业务逻辑为例,由简到难介绍:1)第一种编码写法,也常被称为简单工厂模式,表现方式是通过传参来确认工厂的创建对象。ISender发送器接口:public int

2016-12-19 18:21:36 522

原创 Java设计模式(1)概述:类别与原则

Java设计模式(一)设计原则

2016-12-19 15:29:58 599

Node.js Express框架GET、POST、COOKIE、上传、数据库等测试实例

Node.js Express框架GET、POST、COOKIE、上传、数据库等测试实例

2018-01-26

React+Webpack+ES6代码示例

关于React+Webpack+ES6组合开发环境部署Demo源码及代码示例。

2017-11-27

React Demo

内容为React(版本15.6.2)测试实例,方便开发者学习和了解React

2017-11-27

requireJS实例

requireJS实例Demo

2017-06-30

js自由变换工具实例

自由变换工具类似于PS中Ctrl+T功能,实现图片的缩放、斜切、旋转和位移。本实例中实现自由变换的有两种容器类型,一种是canvas,另一种是div。

2017-06-07

PIXI骨骼动画Demo

PIXI骨骼动画 Dragonbones

2017-05-19

Webpack打包实例测试代码

Webpack打包实例测试代码

2017-03-28

AS3 SOCKET

AS3 SOCKET,关于AS3网络同步控制,SOCKET技术,延时等问题解决

2011-05-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除