其實大家都是朋友,也不能人人都像小明那麼勢利吧。小剛就做的比較好,一打眼就知道誰是窮人誰又是富人了。不過沒關係窮人有窮人的玩法富人有富人的玩法嘛~這段邏輯用**怎麼實現?
首先是乙個抽象的朋友(朋友在這裡充當了實現者角色)
public abstract class friend
}
下來朋友裡有富有的有貧窮的玩法不太一樣
public class richman extends friend
protected void eat()
protected void drink()
//富人還可以為所欲為
public void doanything()
public void play()
}
窮人
public class poorman extends friend
protected void eat()
protected void drink()
public void play()
}
抽象者角色
public abstract class abstraction
public void dosomething()
public void play()
}
具體的抽象者角色重寫了父類的部分邏輯,這裡僅以小剛所屬為例
public class refinedabstraction extends abstraction
//修正抽象類的邏輯
public void play()
}
場景類
public class client
}
執行結果:
小強是窮人
只能吃得起大排檔
只能和得起茅台鎮
沒關係不管是誰出去玩我都請客
————————————————————————
小紅很有錢
可以吃得起法餐
可以喝得起82年的拉菲
還可以一起去***
沒關係不管是誰出去玩我都請客
設計模式之橋梁模式
場景描述 1 在系統設計時,發現類的繼承有n層時,但不能確定是否會更改繼承來的共性,可以考慮使用橋梁模式。2 類圖描述 橋梁模式是抽象和實現的解耦,使得兩者可以獨立地變化。3 程式實現舉例 c using system using system.collections.generic using s...
設計模式之禪之設計模式 橋梁模式
1 package com.yeepay.sxf.template24 2 3 實現化角色 4 相當於不同的業務邏輯,抽象出共有行為5 6 產品類7 author sxf8 9 10 public abstract class product view code 房子產品實現 1 package c...
《設計模式之禪》之橋梁模式
橋梁模式也叫橋接模式,是乙個比較簡單的模式,其定義如下 將抽象和實現解耦,使得兩者可以獨立地變化。abstraction 抽象化角色 它的主頁職責是定義出該角色的行為,同時儲存乙個對實現畫角色的引用,該角色一般是抽象類。implementor 實現化角色 它是介面或者抽象類,定義角色必需的行為和屬性...