freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[工學]4-java面向?qū)ο笤O計-資料下載頁

2025-01-19 10:43本頁面
  

【正文】 public abstract void Play()。 } public class RM extends VideoMedia { public void Play() { (Play the rm file.)。} } public class MPEG extends VideoMedia { public void Play() { (Play the mpeg file.)。} } ?糟糕的是,你不能一勞永逸地享受原有的MediaPlayer類了。因為你要播放的 RM文件并不是 AudioMedia的子類。 20 接口可是個利器 ?不過不用著急,因為接口這個利器你還沒有用上。雖然視頻和音頻格式不同,別忘了,他們都是媒體中的一種,很多時候,他們有許多相似的功能,比如播放。根據(jù)接口的定義,你完全可以將相同功能的一系列對象實現(xiàn)同一個接口: public interface IMedia { abstract void play()。 } public abstract class AudioMedia implements IMedia { public abstract void play()。 } public abstract class VideoMedia implements IMedia { public abstract void play()。 } 再更改一下 MediaPlayer的設計就 OK了: public class MediaPlayer { public void play(IMedia media) { ()。} } 21 總結(jié),思考 ?從 MediaPlayer類的演變,我們可以得出這樣一個結(jié)論:在調(diào)用類對象的屬性和方法時,盡量避免將具體類對象作為傳遞參數(shù),而應傳遞其抽象對象,更好地是傳遞接口,將實際的調(diào)用和具體對象完全剝離開,這樣可以提高代碼的靈活性。 ?不過,事情并沒有完。雖然一切看起來都很完美了,但我們忽略了這個事實,就是忘記了 MediaPlayer的調(diào)用者。 還記得文章最開始的 switch語句嗎?看起來我們已經(jīng)非常漂亮地除掉了這個煩惱。事實上,我在這里玩了一個詭計,將 switch語句延后了。雖然在 MediaPlayer中,代碼顯得干凈利落,其實煩惱只不過是轉(zhuǎn)嫁到了MediaPlayer的調(diào)用者那里。
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1