[英]Class adapter pattern in Java
interface movement{
void jump(); //Jump is 1 Feet high
}
class mario(){
void specificJump(int feet); //Use variable feet to jump higher than 1 Feet
}
public class myAdapter extends mario implements movement{
int feet;
public void jump(){
specificJump(feet);
}
}
運動是一個單一方法的界面,可以讓你跳 1 英尺高。
mario 是一個 class ,它有一個方法 specificJump(int feet) 可以讓你跳到 1 英尺以上。
myAdapter 的實現應該像這樣工作:
因此,當嘗試調用 jump() 時,您實際上將執行 specificJump(feet)。
問題:為了執行 specificJump(int feet) 我們首先需要調用 jump()。
但是 specificJump(int feet) 需要一個參數,是否可以像我一樣在 myAdapter 中聲明 int feet?
我的問題是,當您必須在沒有參數的情況下調用 jump() 時,如何獲得 int feet 值? (使用 Class 適配器模式)
無效跳轉(); //跳躍是1英尺高
好吧,如果這是接口契約,則實現不應違反該契約並允許跳躍高於 1 英尺。
因此,您可能會有:
class MovableMario extends Mario implements Movement {
@Override
public void jump() {
specificJump(1);
}
}
無論哪個客戶需要跳躍特定高度,仍然可以使用mario.specificJump(feet)
。
請注意,該設計非常有限,理想情況下,適配器將以裝飾器的形式出現並委托給內部Mario
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.