设计模式
阿良的空间
这个作者很懒,什么都没留下…
展开
-
动态代理--java实现
重写一个类的方法,可以使用如下三种方法: 1、创建一个类的子类,重写该方法 2、创建一个包装类,重写该方法 3、创建一个动态代理,重写该方法,动态代理使用的是反射技术。 下面是动态代理java实现。 //接口 StudentDao package dao; public interface StudentDao{ public void printS原创 2013-11-29 09:19:00 · 621 阅读 · 0 评论 -
观察者模式2
观察者模式 ·让对象能够在状态改变时被通知 ·观察者模式: ·观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新 ·主题和观察者之间松耦合: ·主题只知道观察者实现了某个接口(Observer接口),而不需要知道观察者的具体类是什么及其他细节 ·任何时刻都可以为主题增转载 2014-02-25 15:57:51 · 583 阅读 · 0 评论 -
观察者模式
简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。 观察者模式的结构 观察者(Observer)模式是对象的行为型模式,又叫做发表-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-收听者(Sou转载 2014-02-25 15:01:47 · 619 阅读 · 0 评论 -
Java 动态代理机制分析及扩展,第 1 部分
引言 Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架。通过阅读本文,读者将会对 Java 动态代理机制有更加深入的理解。本文首先从 Java 动态代理的运行机制转载 2014-02-25 13:33:58 · 653 阅读 · 0 评论 -
java动态代理
java动态代理(JDK和cglib) JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特转载 2014-02-25 13:22:00 · 598 阅读 · 0 评论 -
Java 动态代理机制分析和扩展,第 2 部分
相信通过阅读“Java 动态代理机制分析和扩展,第 1 部分”,读者已经对 Java 动态代理机制有了一定的了解。本文将在上一篇的基础上,针对 Java 动态代理仅支持接口代理这一局限进行扩展,实现对类的代理。 2 评论: 王 忠平, 软件工程师, IBM 何 平, 软件工程师, IBM 2010 年 1 月 27 日 内容转载 2014-02-25 14:10:24 · 691 阅读 · 0 评论 -
动态代理------二
动态代理: 被代理的对象有什么方法,代理对象应该也有什么方法。在访问被代理对象时,将会先访问代理对象的相关方法。生成代理对象的方法是Proxy类中的newProxyInstance方法,此方法的原型如下: newProxyInstance(ClassLoader loader, //类装载器 Class[] interfaces, //基于接口进行代理,此代理将会实现这些接口原创 2014-02-25 12:11:27 · 556 阅读 · 0 评论 -
设计模式之 动态代理 - ThreadLocal实现事务管理
动态代理:JDK动态代理只能对实现了接口的类进入代理,采用JDK动态代理必须实现InvocationHandler接口,采用Proxy 类创建相应的代理类. 下面使用Model2(MVC)使用代理事务查询用户基本信息,使用DB2数据库: Sql代码 建立表: create table T_USER ( USER_ID转载 2013-12-14 00:19:24 · 876 阅读 · 0 评论 -
工厂模式--java
工厂模式细分有三种,分别为:简单工厂模式工厂方法模式抽象工厂模 式现单个的讲,最后再讲这三个的区别 这篇文章主要通过一个农场的实例来讲解,这也是java与模式书中的例 子,只不过我对一些部分进行了简化,一些部分进行了扩充,以帮助理解例 子如下: 有一个农场公司,专门向市场销售各类水果有如下水果: 葡萄(grape) 草莓(strawberry) 苹果(apple) 简单工厂模式:转载 2013-12-05 22:46:11 · 837 阅读 · 0 评论 -
单例模式
[1].[代码] Java中的五种单例模式实现方法 跳至 [1]view sourceprint?01package singleton;02 03/**04 * @author lei05 * 单例模式的五种写法:06 * 1、懒汉07 * 2、恶汉08 * 3、静态内部类09 * 4、枚举10 * 5、双重校验锁11 * 2011-9-612 */13/**14 *五、 双重校验锁,在当前的内转载 2013-12-05 22:31:19 · 612 阅读 · 0 评论 -
工厂模式--java
一、引子 话说十年前,有一个****户,他家有三辆汽车——Benz奔驰、Bmw宝马、Audi奥迪,还雇了司机为他开车。不过,****户坐车时总是怪怪的:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi说“开奥迪车!”。你一定说:这人有病!直接说开车不就行了?! 而当把这个****户的行为放到我们程序设计中来转载 2013-12-05 23:49:14 · 526 阅读 · 0 评论 -
策略模式--java
策略模式: 策略模式是行为对象模式,主要是定义一系列算法,把每个算法封装起来,此模式让算法的变化独立于使用算法的客户。 策略模式体现了两个面向对象编程原则: 1、封装变化的概念 2、编程中使用接口,而不是对接口的实现 策略模式定义一个共同的抽象算法接口,其子类实现这个接口定义的方法,并且都有各自不同的实现,这些算法实现可以再客户端调用它们的时候互不影响的变化。子算法之间是弱连接。 策略原创 2013-12-05 22:19:17 · 680 阅读 · 0 评论 -
包装类--java
包装类: 当为了增强某类A的功能时,可以设计一个包装类B,该包装类B实现对类A的增强。在I/O流中,有比较多的包装类。如:FileInputStream 是对File类的增强,FileOutputStream是对File类的增强。 FileInputStream fin = new FileInputStream(new File("a")); FileOutputS原创 2013-11-29 14:26:34 · 706 阅读 · 0 评论 -
使用动态代理实现对request和response的增强
对request进行增强,解决提交时出现的中文乱码问题。 public class CharacterEncodingFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, Servl原创 2014-02-25 16:03:00 · 1654 阅读 · 0 评论