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

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

java設計模式之Adapter

瀏覽:22日期: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
相關文章:
主站蜘蛛池模板: 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 江苏南京多语种翻译-专业翻译公司报价-正规商务翻译机构-南京华彦翻译服务有限公司 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 石英陶瓷,石英坩埚,二氧化硅陶瓷-淄博百特高新材料有限公司 | 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 希望影视-高清影视vip热播电影电视剧免费在线抢先看 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 证券新闻,热播美式保罗1984第二部_腾讯1080p-仁爱影院 | 奥运星-汽车性能网评-提供个性化汽车资讯| 旗杆生产厂家_不锈钢锥形旗杆价格_铝合金电动旗杆-上海锥升金属科技有限公司 | 组织研磨机-高通量组织研磨仪-实验室多样品组织研磨机-东方天净 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 悬浮拼装地板_篮球场木地板翻新_运动木地板价格-上海越禾运动地板厂家 | 郑州律师咨询-郑州律师事务所_河南锦盾律师事务所 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 新材料分散-高速均质搅拌机-超声波分散混合-上海化烁智能设备有限公司 | 应急灯_消防应急灯_应急照明灯_应急灯厂家-大成智慧官网 | 气动隔膜阀_气动隔膜阀厂家_卫生级隔膜阀价格_浙江浙控阀门有限公司 | 北京遮阳网-防尘盖土网-盖土草坪-迷彩网-防尘网生产厂家-京兴科技 | 威客电竞(vk·game)·电子竞技赛事官网 | 四川职高信息网-初高中、大专、职业技术学校招生信息网 | 长沙网站建设制作「网站优化推广」-网页设计公司-速马科技官网 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 仓储笼_仓储货架_南京货架_仓储货架厂家_南京货架价格低-南京一品仓储设备制造公司 | 双杰天平-国产双杰电子天平-美国双杰-常熟双杰仪器 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 硬度计_影像测量仪_维氏硬度计_佛山市精测计量仪器设备有限公司厂家 | 诚暄电子公司首页-线路板打样,pcb线路板打样加工制作厂家 | 南京交通事故律师-专打交通事故的南京律师 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 软文推广发布平台_新闻稿件自助发布_媒体邀约-澜媒宝 | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | 江苏皓越真空设备有限公司| TPU薄膜_TPU薄膜生产厂家_TPU热熔胶膜厂家定制_鑫亘环保科技(深圳)有限公司 | 代理记账_免费注册公司_营业执照代办_资质代办-【乐财汇】 | 隧道烘箱_隧道烘箱生产厂家-上海冠顶专业生产烘道设备 | 珠光砂保温板-一体化保温板-有釉面发泡陶瓷保温板-杭州一体化建筑材料 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 铝合金线槽_铝型材加工_空调挡水板厂家-江阴炜福金属制品有限公司 | 万濠投影仪_瑞士TRIMOS高度仪_尼康投影仪V12BDC|量子仪器 |