1 定義:
???? 將兩個不兼容的類糾合在一起使用,屬于結(jié)構(gòu)型模式,需要有被適配者(Adaptee)和適配器(Adapor)兩個身份。
2 為何使用:
??? 我們經(jīng)常需要將兩上沒有關(guān)系的類組合在一起使用,第一解決方案是修改各自類的接口,便如沒有源代碼,或者我們不愿意為一個應(yīng)用而修改接口怎么辦,就用Adapter創(chuàng)建混血的組合體。
至于怎么用可以參考?《think in java》的“類再生”這一節(jié)所提到的兩個方式:組合(Composition)和繼承(inheritance)
參考例子:
package com.pdw.pattern;
/**
?* 兩個不兼容的類糾合在一起使用,屬于結(jié)構(gòu)模型,需有被適配器(Adaptee)和適配器(Adaptor)兩個身份
?*
?* @author Administrator
?*
?*/
//打方型
class SquarePeg{
?public void insert(String str){
??System.out.println("打方型-->"+str);
?}
}
//打圓柱型
class RoundPeg{
?public void insertIntohole(String msg){
??System.out.println("打圓柱型-->"+msg);
?}
}
class PegAdapter extends SquarePeg{
?private RoundPeg rp;
?public PegAdapter(RoundPeg vrp){
??this.rp=vrp;
?}
?public void insertRound(String str){
??rp.insertIntohole(str);
?}
?public void insertSquare(String str){
??super.insert(str);
?}
}
public class AdapterImpl {
?
?
?/**
? * @param args
? */
?public static void main(String[] args) {
??RoundPeg rp=new RoundPeg();
??PegAdapter pg=new PegAdapter(rp);
??pg.insertRound("圓柱型");
??pg.insertSquare("方型");
?}
}
posted on 2006-07-03 23:03
有貓相伴的日子 閱讀(475)
評論(0) 編輯 收藏 所屬分類:
Patterns