根據定義我們知道當我們的類的介面不一致時,可以使用該模式。一般情況下,我們想復用現有的類,但是類的介面與復用環境不一致,那我們就可以用介面卡模式了。
類圖:
**部分就不寫了,感覺挺簡單的,但是在敲**時,發現了了乙個有趣的事情。還得看**
abstract class player //這是乙個抽象父類
public player(string name)
public abstract void attack();
public abstract void defense();
}
class forwards:player //這是乙個具體的子類
public override void attack()
進攻", name);
}public override void defense()
防守", name);}}
再敲介面卡這塊**時,base關鍵字總是出現,我就不明白了base關鍵字為什麼在這裡出現呢,還每個子類都出現。
發現:new 乙個類的物件,不是直接建立這個物件的,而是先載入這個類,然後載入父類,也就是說類的載入是從下而上的順序載入的,類載入完了,就是建立物件,建立物件是從上而下的順序建立的,先父類物件,後子類物件。以便於子類繼承父類的一些屬性方法。
最後再回歸我們的問題:父類沒有引數為0的建構函式,原來子類的建構函式初始化時,會先找父類的建構函式,如果沒有指定父類哪個建構函式時,他會找父類無參的建構函式,所以當找不到時就會報錯了。我想這就是問題的癥結所在。而base這個關鍵字,我想就是指定子類呼叫父類的哪個建構函式吧。但是當父類的建構函式多種多樣呢,怎麼用base關鍵字呢。繼續學習中。
介面卡模式(類介面卡 物件介面卡)
做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...
介面卡模式 預設介面卡,類介面卡,物件介面卡
模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...