`
gengu
  • 浏览: 86612 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
文章列表

java 动态代理

    博客分类:
  • java
上一次说了java的代理模式。 其实java自己就提供了动态代理帮助我们实现代理模式,他的核心思想是在编写程序时不关心程序要代理谁,而是在运行的时候才关心我要代理谁。   java.lang.reflect.InvocationHandler是JDK提供的动态代理接口,对被代理类的方法进行代理。 invoke方法是接口InvocationHandler定义必须实现的,它完成对真实方法的调用。   动态代理是根据被代理的接口生成所有的方法,也就是先给定一个接口,动态代理会宣称“我已经实现该接口下的所有方法了”。通过InvocationHandler接口,所有方法都由该Hander来进行 ...

代理模式

java中代理模式是使用最最广泛的一个模式了   在当今最流行的hibernate和Spring中都可以看到它的广泛应用。 比如说在hibernate中的延迟加载和Spring中的AOP.都有它巨大的功劳。   它的中心思想是,为其他对象提供一种代理以控制对这个对象的访问。 有三个角色,抽象主题角色,具体实现角色,代理主题角色   package com.gengu.代理; /** * 代理类接口 * */ public interface Subject { /**这个接口定义了所被代理的类所应该实现的方法*/ public void doSomethi ...

模板方法模式

模板方法模式有这样的定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构既可重定义该算法的某些特定步骤。   模板方法的使用场景有: 1:多个子类有公有的方法,并且 ...
抽象工厂模式,在很多场景下都有应用。   它有以下的优点 1:封装性,每个产品的实现类不是高层模块要关心的,它所要关心 的是接口和抽象类,他不关心对象是如何创建出来,只有工厂类去关心,只要知道工厂类是谁,我 ...
简单工厂模式也是一个应用很广泛的模式,但是可扩展性没有工厂方法模式高。   简单工厂模式设计到工厂角色,抽象产品角色以及具体产品角色等   工厂类:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的 ...
简单工厂模式是最广泛被使用的一个模式,伟大的Spring就大量使用了它的思想   那么为什么要使用工厂模式呢? 首先,良好的封装性,代码结构清晰,对用户屏蔽了类实体的创建过程 其次,良好的可扩展性,在增加产品类的情况下,只要适当的修改具体工厂类或者扩展一个工厂类,就可以"拥抱变化"。 再次,屏蔽产品类,产品类如何变化,调用者根本不用担心,它只关心产品的接口,只要接口保持不变,系统的上层模块就不用变化,因为产品的实例化工作是工厂去完成的。   产品接口 package com.gengu.工厂方法; /** 这是一个产品接口*/ public inter ...
  开始研究java模式,有些东西还理解的不是很透彻   把他们记录下来加深理解,并且跟广大技术爱好者们共同探讨   单例模式,就是保证在堆中只创建某一个类的一个实例,单例模式有很多应用,比如说hibernate中的SessionFactory,比如在Spring中默认创建的类的实例都应该是单例模式的。   我觉得他是模式中最简单的之一了   有两种实现方式 1: package com.gengu.单例; /** * 单例模式的一种实现形式 * */ public class DanLi1 { private static DanLi1 danL ...
从今天开始,转战iteye了   第一篇博客想写点关于java的方法重写,百度百科给这样的定义。   1.发生方法重写的两个方法返回值、方法名、参数列表必须完全一致(子类重写父类的方法)2.子类抛出的异常不能超过父类相应方法抛出的异常(子类异常不能大于父类异常)3.子类方法的访问级别不能低于父类相应方法的访问级别(子类访问级别不能低于父类访问级别) 但是通过今天写了一个重写Object类中的clone()方法我发现,重写方法的返回值可以是不一样的,或者说他的返回值可以是父类方法的返回值的子类,或者他的实现类。   有以下示例: /** * 这个类是汽车类 * 那么汽 ...
Global site tag (gtag.js) - Google Analytics