
Java设计模式
anialy
这个作者很懒,什么都没留下…
展开
-
结合属性文件的工厂模式(java反射的应用)
简述:利用Java反射实现抽象工厂的工厂方法模式Job作为一个接口,其方法为void showJobInfo(),分别被Driver类和Teacher类实现,JobFactory作为一个工厂,返回的是实现Job接口的Job对象,分别指向不同的实例(Teacher和Driver的实例)其中构造Teacher和Driver的方法分别是无参构造函数,和有参构造函数,之后再使用Cla原创 2012-09-30 16:53:46 · 2823 阅读 · 0 评论 -
singleton单例模式
简述:实现Singleton单例模式知识点:单例模式 ,是保证在Java应用程序中,一个类只有一个实例存在,用static修饰符实现例如写DAO的时候,访问数据库的接口写在某个DAO类中,这个DAO中只提供数据库访问的方法,这个DAO只需要创建一个实例就够了,或者写了某个Util类,只提供数据转换(例如吧list的数据转换为String)的方法,也是只要创建一个单例的对转载 2012-09-30 21:25:16 · 806 阅读 · 0 评论 -
Command 模式
简述:Command 命令模式:(参考http://wenku.baidu.com/view/798cc2f6f61fb7360b4c654a.html)我理解的Command,通过interface调用不同具体实现例如 执行一条命令,但是不关注是什么命令,那么只需要提供这个命令的接口方法的实现,给调用者就可以了,在调用者自定义的方法里面可以执行打开电视,打开电灯。。等等原创 2013-02-28 23:26:59 · 862 阅读 · 0 评论 -
Decorator模式
简述:装饰器模式,动态地给一个对象添加一些额外的职责适用性:1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责2)处理那些可以撤消的职责3)当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。实现描原创 2012-10-29 23:10:36 · 896 阅读 · 0 评论 -
CGLIB实现动态代理
简述:这篇文章记录一下用CGLIB包做动态代理的模板,cglib的动态代理的原理:使用ASM这一字节码框架,动态生成目标对象的子类,注意其中final方法不能被覆盖,这是CGLIB的一个缺点在ivy.xml里导入cglib的包代码:MyMethodInterceptor.java其中接口intercept()方法中的参数分别为代理对象转载 2012-10-09 01:40:14 · 929 阅读 · 0 评论 -
基于Proxy的动态代理(Proxy 模式)
简述:Java反射Reflect的作用很大,在这里主要讨论其实现动态代理代理模式的定义:对其他对象提供一种代理以控制对这个对象的访问。实现:有两个接口Ising,Isay 用Person去实现两个接口最后需要一个MyInvocationHandler去处理回调接口代码:Isay.javapackage test.dynamic.p转载 2012-10-08 13:34:57 · 865 阅读 · 0 评论 -
Bridge模式
简述:Bridge模式与工厂方法不同的是, 其具体的方法实现可以被共享如下述例子里月饼馅料制作的实现可以被共享例子:设计了一个制作月饼的样例,制作两种月饼一种是椰蓉的,一种是豆沙的,分别使用两个类一个是CoconutMoonCakeImp类,以及BeanPastedMoonCake都实现了MoonCakeImp接口还使用了一个SuperMoonCak原创 2012-10-02 00:26:10 · 766 阅读 · 0 评论 -
Adapter模式
简述:Adapter模式需求:有一个Adaptee类,有一个方法是SpecificRequest()但是,由于系统要求接口统一为Request(),同时又不修改原先Adaptee类的方法,于是,只能用Adapter模式设计一个Adapter类来统一这个接口代码:Adaptee.javapackage design_pattern.adapte原创 2012-10-01 16:43:00 · 559 阅读 · 0 评论 -
Builder模式
简述:Builder构建者模式代码:Builder.java 接口用于ConcreteBuilder的具体实现package design_pattern.builder;public interface Builder { void BuildPartA(int num); void BuildPartB(int num); void Build原创 2012-09-30 23:54:49 · 602 阅读 · 0 评论