JAVA技术
小水滴2014
小水滴团队,精品制作,创意无限
展开
-
浅析JAVA设计模式之代理模式(一)
1 代理模式简介 代理模式的定义:对其他对象提供一种代理以控制对这个对象的访问。 简单地说,代理类具有和被代理类一样的方法,调用者通过调用代理类的方法间接调用了被代理类相同名字的方法,对于调用者来说,它不用察觉自己调用的是代理类的方法,感觉上仍然在调用被代理类的方法。对于被代理类来说,代理类可以在调用其方法前后做其他工作,比如写日志等。 比如张三拨打电话12345678给李四,这...原创 2014-04-30 18:26:51 · 1405 阅读 · 2 评论 -
浅析JAVA设计模式之工厂模式(三)
在阅读本文之前,请先阅读(一)和(二)中的简单工厂模式和工厂方法模式。1抽象工厂模式简介 抽象工厂 (Abstract Factroy)模式:工具箱模式(kit)。抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态,如下图。图1.1 上图左边有一个工厂类的等级结构,右边有两个不同的产品等级结构,分别是产品A的等级结构和产品B的等级...原创 2014-11-13 22:46:49 · 850 阅读 · 0 评论 -
浅析JAVA设计模式之工厂模式(二)
1 工厂方法模式简介 工厂方法 (Factroy Method)模式:又称多态性工厂模式(Polymorphic Factory),在这种模式中,核心工厂不再是一个具体的类,而是一个抽象工厂,提供具体工厂实现的接口,具体创建产品交由子工厂去做,抽象工厂不涉及任何产品被实例化的细节。而不同等级的产品,就对应一个不同等级的工厂,如下图。图11.1工厂方法模式(多态性工厂模式): ...原创 2014-07-31 21:11:34 · 956 阅读 · 0 评论 -
浅析JAVA设计模式之单例模式(一)
1 单例模式简介 单例模式确保一个类只有一个实例,并且自行实行实例化并向整个系统提供这个实例。 单例模式有三个要点: 1.某个类只能有一个实例。 2.它必须自行创建这个实例。 3.它必须向整个系统提供这个实例。 单例模式主要分为两种:饿汉式单例模式和懒汉式单例模式1.1饿汉式单例模式: 饿汉式单例模式是jav...原创 2014-11-23 08:34:34 · 929 阅读 · 0 评论 -
浅析JAVA设计模式之代理模式(四)
1. 抽象接口的方法有参数的情况 在《浅析JAVA设计模式之代理模式(二)》(简称《二》)中,抽象方法里面的方法是没有参数的,如果方法里面有参数的,我们的代码又该如何写?1.1 静态代理的处理 在《浅析JAVA设计模式之代理模式(一)》(简称《一》)中,实现的静态代理本来就是有参数的,也非常容易实现,可参考回《一》,这里不再详细分析。1.2 动态代理的处理(1)新建一...原创 2014-05-05 16:23:57 · 944 阅读 · 0 评论 -
浅析JAVA设计模式之代理模式(二)
1 动态代理 在上一篇文章《浅析JAVA设计模式之代理模式(一)》中,已经简单介绍了代理模式的定义,以及分析和实现了静态代理类,接下来我们分析动态代理。 动态代理类:就是其代理类是在程序运行时,运用反射机制动态创建而成,并不需要像静态代理那样子事先要编写好代理类。如果有多重代理,就要写多个代理类,如果一个类有多个方法都需要代理的话,就更加使得代码臃肿,不易维护,这...原创 2014-05-02 22:14:22 · 2052 阅读 · 0 评论 -
浅析JAVA设计模式之工厂模式(一)
1 工厂模式简介 工厂模式的定义:简单地说,用来实例化对象,代替new操作。 工厂模式专门负责将大量有共同接口的类实例化。工作模式可以动态决定将哪一个类实例化,不用先知道每次要实例化哪一个类。 工厂模式可以分一下三种形态: 简单工厂 (Simple Factory)模式:又称静态工厂模式(StaticFactory)。 工厂方法 (Factroy Method)模式:...原创 2014-07-31 21:06:02 · 1058 阅读 · 0 评论 -
浅析JAVA设计模式之代理模式(七)
1 .CGLIB动态代理 在《六》中,我们分析了JDK提供的动态代理的缺陷,并且提出了一种解决思路,并简单地对其进行了实现。其实《六》中的简单实现其实是对一种叫cglib动态代理的简单模拟。 什么是从CGLIB? CGLIB(CodeGeneration Library代码生产库)是一个开源项目,是一个强大的,高性能,高质量的代码生成类库,它可以在运行期扩展Ja...原创 2014-06-05 09:14:46 · 1440 阅读 · 0 评论 -
浅析JAVA设计模式之代理模式(六)
1 . JDK动态代理美的缺陷 JDK的Proxy已经设计得很优雅,真正的美始终带有一点缺陷,仅支持对interface代理。那些动态生成的代理类都继承了Proxy类(参考《五》中最后输出结果中通过反射工具反射出的自动生成的代理类$Proxy0的代码)。因为那些生成的代理已经拥有一个父类,而Java的单继承机制使得代理类无法实现对类的动态代理(不能再继承任何一个类,但可以实现接口)。...原创 2014-06-01 07:15:28 · 1656 阅读 · 0 评论 -
浅析JAVA设计模式之代理模式(五)
1. JDK提供代理支持 JAVA的JDK为我们提供了一个比较完美的动态代理的支持,上几篇文章就是为了更好理解JDK提供的动态代理模式,而对其做了简单的模拟实现,有了前几篇文章的基础,接下来我们使用一下JDK提供的动态代理。1.1 JDK动态代理简介 首先JDK也提供了一个处理器接口java.lang.reflect.InvocationHandler,它自定...原创 2014-05-06 07:15:16 · 1196 阅读 · 0 评论 -
浅析JAVA设计模式之代理模式(三)
1. 抽象接口有多个方法的情况 在《浅析JAVA设计模式之代理模式(一)》(简称《一》)和《浅析JAVA设计模式之代理模式(二)》(简称《二》)中,抽象方法里面只有一个方法,如果有一个以上的方法需要代理,我们的代码又该如何写?1.1 静态代理的处理(1)现在改动一下《一》中的Subject.Java文件,增加一个方法。package StaticProxy;public inter...原创 2014-05-04 16:18:38 · 1042 阅读 · 0 评论 -
浅析JAVA设计模式之单例模式(二)
1 懒汉式单例模式 与饿汉式单例模式相同的是,类的构造函数也是私有的,不同的是懒汉式单例类在第一次被引用时才将自己实例化,1.1懒汉式单例模式: 懒汉式单例模式是UML图如下: 图1.1 从图中可以看出,和饿汉式单例模式一样它自己将自己实例化,不同的是懒汉式单例类的成员变量不再被final修饰,并且初始值为null,并且里面的静态工厂方法多了synchron...原创 2015-01-31 22:14:05 · 701 阅读 · 0 评论