介面卡,「迫不得已」是你的宿命

2021-09-01 06:05:33 字數 952 閱讀 6768

最近做的乙個專案,第一階段算是結束了,下午領點錢花花,如果還要做第二期的,加錢嘞

技術方面關於設計模式還是小有收穫的,尤其是介面卡模式,迫不得已用上了你,當然這也是介面卡模式的宿命了。

介面卡模式在詳細設計階段是不應該考慮的,它不是為了解決處在開發階段的問題的,而是解決正在服役的專案,沒有任何乙個分析師會在設計的時候考慮它。

。原理講解推薦部落格。這裡只分析下專案中使用該設計模式的原因和過程。

( 貼張圖,只是為了增加說明的方便,應該不會洩漏什麼)

最初,需要做的介面:傳入的引數是某個容器如list或其他,容器存放的是使用者的資料。

後來,我們需要增加另外乙個功能:儲存所有資料。

現在分析下當前的處境:使用者傳進來list《使用者資料》,我們內部需要根據使用者資料做出各種處理,包括增加各種屬性像使用者拖動了「活動」(參見上圖),改變了滾動條的值。這些都需要儲存到磁碟中,並非單純的乙個list。

乙個可行的辦法是:將每乙個屬性按照某種特定的順序讀進磁碟儲存,開啟的時候再按照該順序讀出來,但是這樣擴充套件就很難了,如果以後再增加某個屬性需要儲存,那麼需要重新改寫讀寫的函式,而且從本地磁碟讀取出來的時候必須按照特定的協議讀出來,顯然過程很繁瑣。

另外的乙個方法就是使用序列化功能,將某個類序列化,以二進位制形式儲存這個方法比較好。至於序列化,只需要知道,你只要實現serializable介面,就可以使用系統的方法,以特定格式讀寫進磁碟。但是它只接受類,單個屬性是不能序列化的。

於是,當前的情形是:甲方提供了各種需要儲存的資料,乙方提供了可以儲存的介面方法。但是有個門檻就是,乙方只是接受序列化的類,而甲方能提供的是很多單個的屬性值。於是這個時候,就需要到了介面卡。該介面卡,具體來講就是:該類是乙個實現了serializable介面的類,同時以甲方提供的資料作為屬性值。

(語言應該不是問題)

這樣的話,自己寫的類userdata就是乙個介面卡,想要擴充套件的話也是很容易地。用上了才覺得設計模式果然是不錯嘞......

誰沒有幾個不得已

上土貓,看到有人轉貼的一篇blog,來自央視主持人柴靜,關於她的 道德觀察 中虐貓事件報道的台前幕後。看完以後會對虐貓的那個女人產生一些新的看法,沒有人是天生的暴君。據說 南方周末 的記者已經在聯絡貓撲遊戲頻道的人,想採訪魔獸 事件中的男主人公鄭星。也許不久的將來,在某些我經常去的blog上,就可以...

介面卡模式 預設介面卡,類介面卡,物件介面卡

模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...

介面卡模式(類介面卡 物件介面卡)

做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...