java设计模式
雪舞飞影
喜欢钻研Android源码的程序猿
展开
-
Java设计模式-目录
1、分类创建型(Creator)模式(共5种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式;结构型(Structure)模式(共7种):适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式;行为型(Behavior)模式(共11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解原创 2017-06-30 20:23:50 · 465 阅读 · 0 评论 -
Java设计模式-抽象工厂模式
1、概念抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。比如宝马320系列使用空调型号A和发动机型号A,而宝马230系列使用空调型号B和发动机型号B,那么使用抽象工厂模式,在为320系列生产相关配件时,就无需制定配件的型号,它会自动根据车型生产对应的配件型号A。当每个抽象产品都有多于一个的具体子类的时候(空调有型号A和B两种,发动机也有型号A和B两种),工厂角色原创 2017-07-01 10:15:04 · 320 阅读 · 0 评论 -
Java设计模式-单例模式
1、概念Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例、饿汉式单例。单例模式有以下特点: (1)单例类只能有一个实例; (2)单例类必须自己创建自己的唯一实例; (3)单例类必须给所有其他对象提供这一实例;2、代码实现(1)懒汉式//懒汉式单例类.在第一次调用的时候实例化自己 public class Sin原创 2017-07-01 11:36:20 · 366 阅读 · 0 评论 -
Java设计模式-代理模式
1、概念代理模式(Proxy):代理模式其实就是多一个代理类出来,替原对象进行一些操作。比如咱有的时候打官司需要请律师,因为律师在法律方面有专长,可以替咱进行操作表达咱的想法,这就是代理的意思。代理模式分为两类: (1)静态代理(不使用jdk里面的方法); (2)动态代理(使用jdk里面的InvocationHandler和Proxy);2、静态代理/** * 示例(一):原创 2017-07-01 11:57:53 · 294 阅读 · 0 评论 -
Java设计模式-模板方法模式
1、概念模板方法模式(Template Method):在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以再不改变算法结构的情况下,重新定义算法中的某些步骤。 简而言之:模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现。模式中的角色: 抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。 具体类(ConcreteCla原创 2017-07-01 11:56:35 · 437 阅读 · 0 评论 -
Java设计模式-外观模式
1、概念外观模式(Facade):是为了解决类与类之间的依赖关系的,像spring一样,可以将类与类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类与类之间的耦合度,该模式中没有涉及到接口。我们先看两张结构图,可以一目了然的了解外观模式的作用。未使用外观模式: 使用了外观模式: 我们来看一下外观模式(门面模式)的两个角色 (1)原创 2017-07-01 11:51:58 · 356 阅读 · 0 评论 -
Java设计模式-适配器模式
1、概念(1)定义适配器模式(Adapter):将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。(2)模式角色(1)目标接口(Target):客户所期待的接口,目标可以是具体的或抽象的类,也可以是接口;(2)需要适配的类(Original):需要适配的对象;(3)适配器(Adapter):通过包装一个需要适配的对象,把原接原创 2017-07-01 11:50:33 · 276 阅读 · 0 评论 -
Java设计模式-命令模式
1、概念(1)定义将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。(2)名词(1)Command:命令接口,声明执行的方法。(2)SubClassCommand:命令接口实现对象(即命令对象),通常会持有执行者,并调用执行者的功能来完成命令要执行的操作。(3)Exe原创 2017-07-01 11:47:11 · 334 阅读 · 0 评论 -
Java设计模式-工厂模式(简单工厂+工厂方法)
1、概念工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的,简单说就是调用工厂里的方法来生产对象(产品)的。工厂模式可以分为三类: (1)简单工厂模式(Simple Factory) (2)工厂方法模式(Factory Method) (3)抽象工厂模式(Abstract Factory) 2、代码实现1、简单工厂模式简原创 2017-07-01 10:10:03 · 388 阅读 · 0 评论 -
Java设计模式-装饰者模式
1、概念(1)定义装饰者(Decorator)模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更具有弹性的替代方案。对于装饰者模式,它其实是一种包装,所以我更愿意称它为一种包装。像咱们以前经常使用的Java里面的IO流就用到了装饰者模式。比如:BufferedReader br = new BufferedReader(new InputStreamReader(new原创 2017-07-01 10:03:09 · 289 阅读 · 0 评论 -
java设计模式-策略模式
1、概念策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。这个模式涉及到三个角色:(1)环境(Context)角色:持有一个Strategy的引用。(2)抽象策略(Strategy)角色:这原创 2017-07-01 09:50:16 · 288 阅读 · 0 评论 -
Java设计模式-观察者模式
1、概念观察者(Observer)模式定义:在对象之间定义了一对多的依赖关系,这样一来,当一个对象改变状态时,依赖它的对象都会收到通知并自动更新。Java已经提供了对观察者Observer模式的默认实现, Java对观察者模式的支持主要体现在Observable类和Observer接口。2、代码实现1、Java默认实现/** * 被观察者 */ class Food ex原创 2017-07-01 09:58:20 · 226 阅读 · 0 评论