快速业务通道

Spring框架的设计理念与设计模式分析 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-13
ng.reflect.Method m10;    java.lang.reflect.Method m1;    java.lang.reflect.Method m17;    java.lang.reflect.Method m21;    java.lang.reflect.Method m0;    java.lang.reflect.Method m13;    java.lang.reflect.Method m24;    int hashCode();    int indexOf(org.springframework.aop.Advisor);    int indexOf(org.aopalliance.aop.Advice);    boolean equals(java.lang.Object);    java.lang.String toString();    void sayhello();    void doSomething();    void doSomething2();    java.lang.Class getProxiedInterfaces();    java.lang.Class getTargetClass();    boolean isProxyTargetClass();    org.springframework.aop.Advisor; getAdvisors();    void addAdvisor(int, org.springframework.aop.Advisor)   throws org.springframework.aop.framework.AopConfigException;    void addAdvisor(org.springframework.aop.Advisor)   throws org.springframework.aop.framework.AopConfigException;    void setTargetSource(org.springframework.aop.TargetSource);    org.springframework.aop.TargetSource getTargetSource();    void setPreFiltered(boolean);    boolean isPreFiltered();    boolean isInterfaceProxied(java.lang.Class);    boolean removeAdvisor(org.springframework.aop.Advisor);    void removeAdvisor(int)throws org.springframework.aop.framework.AopConfigException;    boolean replaceAdvisor(org.springframework.aop.Advisor,   org.springframework.aop.Advisor)   throws org.springframework.aop.framework.AopConfigException;    void addAdvice(org.aopalliance.aop.Advice)   throws org.springframework.aop.framework.AopConfigException;    void addAdvice(int, org.aopalliance.aop.Advice)   throws org.springframework.aop.framework.AopConfigException;    boolean removeAdvice(org.aopalliance.aop.Advice);    java.lang.String toProxyConfigString();    boolean isFrozen();    void setExposeProxy(boolean);    boolean isExposeProxy(); }

Spring框架的设计理念与设计模式分析(17)

时间:2012-02-26 IBM 许令波

策略模式

策略模式原理

策略模式顾名思义就是做某事的策略,这在编程上通常是指完成某个操作可能有多种方法,这些方法各有千秋,可能有不同的适应的场合,然而这些操作方法都有可能用到。各一个操作方法都当作一个实现策略,使用者可能根据需要选择合适的策略。

下面是策略模式的结构:

图 23. 策略模式的结构

Context:使用不同策略的环境,它可以根据自身的条件选择不同的策略实现类来完成所要的操作。它持有一个策略实例的引用。创建具体策略对象的方法也可以由他完成。

Strategy:抽象策略,定义每个策略都要实现的策略方法

ConcreteStrategy:具体策略实现类,实现抽象策略中定义的策略方法

Spring 中策略模式的实现

Spring 中策略模式使用有多个地方,如 Bean 定义对象的创建以及代理对象的创建等。这里主要看一下代理对象创建的策略模式的实现。

前面已经了解 Spring 的代理方式有两个 Jdk 动态代理和 CGLIB 代理。这两个代理方式的使用正是使用了策略模式。它的结构图如下所示:

图 24. Spring 中策略模式结构图

在上面结构图中与标准的策略模式结构稍微有点不同,这里抽象策略是 AopProxy 接口,Cglib2AopProxy 和 JdkDynamicAopProxy 分别代表两种策略的实现

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号