新成員,新問題(介面卡模式)
今天剛剛來到這個網站,初看一下,感覺非常棒。
我是java新手,最近在看設計模式相關知識,很多地方理解不深刻,望大家給我一下指導,其中看到“適配模式”,有下面的疑問:
1,首先引用本網站的參考教程如下:
假設我們要打樁,有兩種類:方形樁 圓形樁.
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){super.insert(str); roundPeg.insertIntoHole(str);}
}
2,問題:
為什麼這裡非要用繼承+組合的方式呢?我的想法是就一個組合就可以了吧?
public class PegAdapter {
private RoundPeg roundPeg;
private SquarePeg squarePeg;
public PegAdapter(RoundPeg roundPeg, SquarePeg squarePeg)
{
this.roundPeg=roundPeg;
this.squarePeg = squarePeg;
public void insert(String str)
{
squarePeg.insert(str);
roundPeg.insertIntoHole(str);
}
}
請大家指出我這個設計的缺陷?
我是java新手,最近在看設計模式相關知識,很多地方理解不深刻,望大家給我一下指導,其中看到“適配模式”,有下面的疑問:
1,首先引用本網站的參考教程如下:
假設我們要打樁,有兩種類:方形樁 圓形樁.
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){super.insert(str); roundPeg.insertIntoHole(str);}
}
2,問題:
為什麼這裡非要用繼承+組合的方式呢?我的想法是就一個組合就可以了吧?
public class PegAdapter {
private RoundPeg roundPeg;
private SquarePeg squarePeg;
public PegAdapter(RoundPeg roundPeg, SquarePeg squarePeg)
{
this.roundPeg=roundPeg;
this.squarePeg = squarePeg;
public void insert(String str)
{
squarePeg.insert(str);
roundPeg.insertIntoHole(str);
}
}
請大家指出我這個設計的缺陷?
相關文章
- 使用何種模式,問題新描述?模式
- 恭喜社群迎來新PMC成員!
- Laravel 字串輔助函式新成員Laravel字串函式
- Linux有望成為Vista新成員(轉)Linux
- Omi新成員omi-router正式釋出
- Weblogic中如何增加cluster並加入新cluster成員Web
- 迭代化開發新問題
- 結構體成員對齊的問題結構體
- 函式計算工具鏈新成員——FunLocal釋出啦函式
- 《計算機程式設計藝術》叢書新成員計算機程式設計
- 在尋找新技術工作時詢問招聘人員的20個問題! - dev.todev
- Jive中介面卡問題
- 函式計算工具鏈新成員 —— Fun Local 釋出啦函式
- Apache新成員:LinkedIn分散式資料整合框架GobblinApache分散式框架Go
- 何必橫平豎直 小米智慧家庭新成員 小米錘子?
- 恭喜! SelectDB 五位開發者成為 Apache Doris 新晉 PMC 成員和 Committer!ApacheMIT
- 圖靈社群新會員圖靈
- 創業團隊成員的「挑戰」以及「成長」的問題創業團隊
- 常見問題--安裝好後出現新問題
- 新應用上線又見老問題
- Java模式(介面卡模式)Java模式
- 老革命遭遇新問題 O2O成為BAT的三國殺?BAT
- 介面卡模式(類介面卡 物件介面卡)模式物件
- 介面卡模式模式
- 如果要增加新的問題及其答案,能否僅修改資原始檔就實現增加新的問題
- 618或將成為電商分水嶺 新電商模式冒頭模式
- 新媒體學習前要注意哪些問題?新媒體運營
- 服務網格新成員:亞馬遜釋出App Mesh應用網格亞馬遜APP
- ACM程式設計創新實驗室成員部落格一覽表ACM程式設計
- 比特幣基金會又邀來三位新成員,發…比特幣
- 介面卡模式(類介面卡,物件介面卡,介面介面卡)模式物件
- 新來的前端小姐姐問:Vue路由history模式重新整理頁面出現404問題前端Vue路由模式
- 網路安全問題頻出:全球化、跨行業、快速變異成新特點行業
- 新MacBook Pro問題頻發 可能是顯示卡出現問題Mac
- 老遊戲遇上新問題:當動森遇上詐騙遊戲
- 深度學習之新聞多分類問題深度學習
- 避免問題依舊的新專案 (轉)
- 避免問題依舊的新專案(轉)