电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

java設計模式之Adapter

瀏覽:23日期:2024-06-26 10:20:54

內容: 定義:將兩個不兼容的類糾合在一起使用,屬于結構型模式,需要有Adaptee(被適配者)和Adaptor(適配器)兩個身份.為何使用?我們經常碰到要將兩個沒有關系的類組合在一起使用,第一解決方案是:修改各自類的接口,但是如果我們沒有源代碼,或者,我們不愿意為了一個應用而修改各自的接口。 怎么辦? 使用Adapter,在這兩種接口之間創建一個混合接口(混血兒).如何使用?實現Adapter方式,其實"think in Java"的"類再生"一節中已經提到,有兩種方式:組合(composition)和繼承(inheritance).假設我們要打樁,有兩種類:方形樁 圓形樁.;

public class SquarePeg{public void insert(String str){System.out.println("SquarePeg insert():"+str);}}public class RoundPeg{public void insertIntohole(String msg){System.out.println("RoundPeg insertIntoHole():"+msg);}}

現在有一個應用,需要既打方形樁,又打圓形樁.那么我們需要將這兩個沒有關系的類綜合應用.假設RoundPeg我們沒有源代碼,或源代碼我們不想修改,那么我們使用Adapter來實現這個應用:;

public class PegAdapter extends SquarePeg{private RoundPeg roundPeg;public PegAdapter(RoundPeg peg)(this.roundPeg=peg;)public void insert(String str){ roundPeg.insertIntoHole(str);}}

在上面代碼中,RoundPeg屬于Adaptee,是被適配者.PegAdapter是Adapter,將Adaptee(被適配者RoundPeg)和Target(目標SquarePeg)進行適配.實際上這是將組合方法(composition)和繼承(inheritance)方法綜合運用.PegAdapter首先繼承SquarePeg,然后使用new的組合生成對象方式,生成RoundPeg的對象roundPeg,再重載父類insert()方法。從這里,你也了解使用new生成對象和使用extends繼承生成對象的不同,前者無需對原來的類修改,甚至無需要知道其內部結構和源代碼.如果你有些Java使用的經驗,已經發現,這種模式經常使用。進一步使用上面的PegAdapter是繼承了SquarePeg,如果我們需要兩邊繼承,即繼承SquarePeg 又繼承RoundPeg,因為Java中不允許多繼承,但是我們可以實現(implements)兩個接口(interface);

public interface IRoundPeg{public void insertIntoHole(String msg);}public interface ISquarePeg{public void insert(String str);}

下面是新的RoundPeg 和SquarePeg, 除了實現接口這一區別,和上面的沒什么區別。;

public class SquarePeg implements ISquarePeg{public void insert(String str){System.out.println("SquarePeg insert():"+str);}}public class RoundPeg implements IRoundPeg{public void insertIntohole(String msg){System.out.println("RoundPeg insertIntoHole():"+msg);}}

下面是新的PegAdapter,叫做two-way adapter:;

public class PegAdapter implements IRoundPeg,ISquarePeg{private RoundPeg roundPeg;private SquarePeg squarePeg;// 構造方法public PegAdapter(RoundPeg peg){this.roundPeg=peg;}// 構造方法public PegAdapter(SquarePeg peg)(this.squarePeg=peg;)public void insert(String str){ roundPeg.insertIntoHole(str);}}

還有一種叫Pluggable Adapters,可以動態的獲取幾個adapters中一個。使用Reflection技術,可以動態的發現類中的Public方法。Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd

標簽: Java
相關文章:
主站蜘蛛池模板: 地磅-电子地磅维修-电子吊秤-汽车衡-无人值守系统-公路治超-鹰牌衡器 | 福建自考_福建自学考试网 | 气弹簧定制-气动杆-可控气弹簧-不锈钢阻尼器-工业气弹簧-可调节气弹簧厂家-常州巨腾气弹簧供应商 | 防水试验机_防水测试设备_防水试验装置_淋雨试验箱-广州岳信试验设备有限公司 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 天命文免费算命堂_自助算命_自由算命系统_长文周易 | 深圳市超时尚职业培训学校,培训:月嫂,育婴,养老,家政;化妆,美容,美发,美甲. | C形臂_动态平板DR_动态平板胃肠机生产厂家制造商-普爱医疗 | 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | atcc网站,sigma试剂价格,肿瘤细胞现货,人结肠癌细胞株购买-南京科佰生物 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 包装盒厂家_纸盒印刷_礼品盒定制-济南恒印包装有限公司 | 范秘书_懂你的范文小秘书 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 春腾云财 - 为企业提供专业财税咨询、代理记账服务 | 小型铜米机-干式铜米机-杂线全自动铜米机-河南鑫世昌机械制造有限公司 | 微波萃取合成仪-电热消解器价格-北京安合美诚科学仪器有限公司 | 手术示教系统-数字化手术室系统-林之硕医疗云智能视频平台 | 挤出熔体泵_高温熔体泵_熔体出料泵_郑州海科熔体泵有限公司 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 学生作文网_中小学生作文大全与写作指导 | 上海阳光泵业制造有限公司 -【官方网站】 | 贝朗斯动力商城(BRCPOWER.COM) - 买叉车蓄电池上贝朗斯商城,价格更超值,品质有保障! | 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | 沥青灌缝机_路面灌缝机_道路灌缝机_沥青灌缝机厂家_济宁萨奥机械有限公司 | 防火卷帘门价格-聊城一维工贸特级防火卷帘门厂家▲ | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 长春网站建设,五合一网站设计制作,免费优化推广-长春网站建设 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 无菌水质袋-NASCO食品无菌袋-Whirl-Pak无菌采样袋-深圳市慧普德贸易有限公司 | Jaeaiot捷易科技-英伟达AI显卡模组/GPU整机服务器供应商 | 精密模具制造,注塑加工,吹塑和吹瓶加工,EPS泡沫包装生产 - 济南兴田塑胶有限公司 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 生物制药洁净车间-GMP车间净化工程-食品净化厂房-杭州波涛净化设备工程有限公司 | 土壤有机碳消解器-石油|表层油类分析采水器-青岛溯源环保设备有限公司 | 车载加油机品牌_ 柴油加油机厂家 |