programmer都是很聪明的,阿p也不例外,他很快就画了下面的图: 【程序编程相关:JAVA中最为关键的几个知识点】
4. 类的adapter模式 【推荐阅读:JDBC编程基础】【扩展信息:全世界所有程序员都会犯的错误】
图一: 类的adapter模式类图adaptee是爪哇岛的电源接口,它是一口的,就是adaptee的method1();阿p的笔记本的电源接口是target,是两口的,就是method1()与method2();classadapter就是那个小东西了.
阿p分析: 那个小东西里面有一个小的发电机,提供method2()接口,而用了一条电线,把adaptee的method1()与target的method1()连接起来……
阿p还用程序员的口气分析:adaptee类没有method2()方法,而客户端期望该方法;为了使得客户端能够使用该adaptee类,我们提供一个中间类继承adaptee,将两个api连接起来;所以, 类的adapter模式能把被适配的类的接口转换成为目标类的接口.
5. 对象的adapter模式programmer不仅很聪明,而且大都眼光犀利,阿p也不例外.阿p发现了一个问题: 爪哇岛的电源接口提供的电压是200v,而自己的笔记本每个接口的电压是130v,那刚才那个图的method1()就不对了………阿p思考了一下,马上又画了下面的图:
图二 对象的adapter模式类图阿p分析: objectadapter的method1()在调用adaptee的method1()后,减去了70v; 也就是说,那个小盒子里面加了一个电阻,分了70v的电压.
阿p又用程序员的口气分析: adaptee类并没有method2()方法,而客户端期望该方法.为了使得客户端能够使用该方法,需要提供objectadapter类,它包装了adaptee类的实例,从而连接两套api.所以, 对象的adapter模式使用关联关系把被适配的类的接口转换成为目标类的接口.
6. 类的adapter模式在shark中的应用分析到这里,阿p非常高兴,这下把adapter的原理搞懂了,阿p准备看看一直看不懂的shark源代码,看看高手说的adapter在shark里面是怎么用的.
阿p早就知道,shark中定义业务对象为basebusinessobject接口,工作流执行对象(wfexecutionobject)是一种业务对象,继承basebusinessobject,而流程对象(wfprocess)与活动对象(wfactivity)各是一种工作流执行对象,继承wfexecutionobject.阿p知道,工作流系统的开发,最重要的当然是流程与活动了,他准备先看看流程部分的实现…………..
6.1代码阅读阿p发现,当客户端调用流程相关接口时,shark引擎内部将调用一个很关键的接口:wfprocessinternal接口.
阿p还发现, wfprocessinternal接口的功能实现就使用了类的adapter模式.... 下一页