
设计模式
koushr
这个作者很懒,什么都没留下…
展开
-
JDK动态代理
JDK动态代理主要用到了Proxy类和InvocationHandler接口,两者都在java.lang.reflect包下。 首先介绍一下Proxy类,这个类是所有动态代理类的父类,主要用到这个类的两个静态方法: public static Class getProxyClass(ClassLoader loader, Class... interfaces) 这个方法用于原创 2016-08-01 17:03:31 · 591 阅读 · 0 评论 -
静态代理模式(Static Proxy)解析
要使用被代理类对象的方法时,只需简单的实例化代理类对象,并向上转型为接口(面向接口编程),此时调用此代理类对象的方法就相当于调用被代理类的方法。 当客户端代码需要调用某个对象时,客户端实际上不关心是否准确得到该对象,而是只要一个能提供对应功能的对象即可,这时我们可以为该对象提供一个代理对象,由代理对象控制对源对象的引用。 常见静态代理模式:一个接口,两个实现类,分别为被代理类和代原创 2015-08-07 17:41:45 · 1443 阅读 · 0 评论 -
模板方法(Template)设计模式
抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式。 模板方法设计模式:当功能内部一部分实现是确定,一部分实现是不确定的时,就可以把不确定的部分写成抽象的,让子类必须去实现,把确定的部分写成非抽象的,让子类去继承,这就是模板方法设计模式。 见以下代码: abstract class Temp原创 2015-08-07 15:57:51 · 509 阅读 · 0 评论 -
简单工厂模式、工厂方法模式和抽象工厂模式
第一.简单工厂模式: 有三种组件,一个接口,n个实现类,一个工厂类。在创建对象的时候,利用简单工厂模式,可以根据传参的不同,创建出不同的实现类对象。 实现步骤: 1.创建接口 2.创建n个实现类 3.创建工厂类,里面有返回值类型为接口的方法 见如下代码: //1.创建接口: interface Sender { public void Send(); } // 2.创建接口实现类原创 2015-08-07 18:30:03 · 643 阅读 · 0 评论 -
策略模式(Strategy)解析
Spring的事务机制就是一种典型的策略模式。Spring事务策略是通过PlatformTransactionManager接口体现的,当底层采用不同的持久化技术时,就采用其不同的实现类,例如,配置JDBC数据源的局部事务管理器是,就使用DataSourceTransactionManager类,配置Hibernate的局部事务管理器时就使用HibernateTransactionManager类原创 2015-08-07 18:52:24 · 530 阅读 · 0 评论