而对于新的接口,客户端则不必去传入date 参数
[java]
publicinterfaceAppOrderApi{//只需要传入订单Id即可publicvoidupdateDate(StringorderId,Stringclient);}
新的实现类:
[java]
publicclassAppOrderApiImplimplementsAppOrderApi{SourceOrderApisourceOrderApi;publicAppOrderApiImpl(){sourceOrderApi=newSourceOrderApiImpl();}@OverridepublicvoidupdateDate(StringorderId,Stringclient){//这里适配的方式随意代理器,但是保证是要完全兼容原有的,就是保证调用原有的接口sourceOrderApi.updateDate(orderId,"9999-12-31",client);}}
main方法:
[java]
publicclassTest{publicstaticvoidmain(String[]args){AppOrderApiappOrderApi=newAppOrderApiImpl();appOrderApi.updateDate("123456","user");}}
运行结果:
在这套代码中,新的实现类持有了老接口的对象,就是把这个对象new 出来 。。。
然后在新的方法里,进行适配操作 。
而这里所谓的适配就是兼容老接口和兼容新接口 。
兼容老接口非常简单,就是直接调用老的方法即可 。
而兼容新接口就是你所要去做的业务逻辑 。。。
比如我这里做了比较简单的操作,app类的统一传入“9999-12-31”,这些都是根据具体的项目需求去实现你的业务代码 。
看到这,很多人会觉得 这样的代码是不是很常见 。。。。
我自己都特意去翻了一下我之前的代码,很多类似的写法 。。。
其实设计模式很多时候都融入到我们的代码中,只是我们没有去理解这种模式,所以就算你自己写出来了,都不知道这是一种适配器模式 。。。
设计模式是一种思想,他没有固定的实现代码,我大量查阅了很多大神的的适配器模式解释,大家都不约而同的提到了类的适配和对象的适配,代码中有实现继承这样的写法 。当然了,这些大神的写法都是比较标准的 。。。
但是仔细再回看下GOF的适配器模式解释 。
只需要将原接口转化为客户希望的另一个接口,就是适配器模式!
转化无非就是1.继承原类或者实现原接口 2.持有原接口的对象
再实现目标接口 。。。。
那么第一种就是类的适配,第二种就是对象的适配!仅此而已 。。。。
那么再回头来说代理模式,在代码上,和适配器模式有着相似的地方!
再比如,现在我们公司的系统又要进行升级,我们原先的接口没有加入安全机制,导致了任何人都可以随意调用这个接口,现在公司需要对这个接口进行改造,只其只能被admin这个客户端调用,其他用户一律要输入账号密码才能调用
那么上面原接口和类不需要改动,我们只需要新增代理器即可 。。。
这里就会显出代理模式和适配器模式最大的区别,代理模式是与原对象实现同一个接口,而适配器类则是匹配新接口,说白了,实现一个新的接口 。
代理类:
[java]
publicclassProxySourceOrderApiImplimplementsSourceOrderApi{SourceOrderApisourceOrderApiImpl;publicProxySourceOrderApiImpl(){sourceOrderApiImpl=newSourceOrderApiImpl();}@OverridepublicvoidupdateDate(StringorderId,Stringdate,Stringclient){//进行判断,如果是admin则更新否则让其输入账号密码if("admin".equals(client)){sourceOrderApiImpl.updateDate(orderId,date,client);}else{System.out.println("账号不是admin,没有查询权限,请输入以admin操作");}}}
main方法:
[java]
publicclassTest{publicstaticvoidmain(String[]args){SourceOrderApiproxySourceOrderApiImpl=newProxySourceOrderApiImpl();proxySourceOrderApiImpl.updateDate("123456","2014-10-15","user");proxySourceOrderApiImpl.updateDate("123456","2014-10-15","admin");}}
以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!
「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助:- 我国经济体制改革的目标模式是什么
- Johnson的行为护理模式有何特点?
- 国庆长假首日多地交通进入拥堵模式 这些路段要注意避开
- 让甲烷燃烧得更猛烈些|燃机备件的共享经济模式探讨
- 强制隔离戒毒是我国目前现有禁毒模式中唯一限制人身自由的行政强制措施其期限
- 空调各种模式的符号是什么意思
- 双面雷神怎么变模式?
- 什么是窄带?
- 我国禁毒法规定目前禁毒模式是什么
- 巨蟹女能驾驭狮子男吗 两人的相处模式