Android 設計隨便說說

來源:互聯網
上載者:User

標籤:

我曾經搞過應用程式的設計,當時只是讀了半本寶典《重構...》,現在看來就這半本九陰真經,收益甚多啊 。再加上這現年工作上的印證,基本上可以拿出噴一下了。當然現在看來當年的項目設計真是很爛了。

第一個問題,什麼是設計?我的回答是:為了提高程式執行效率,對程式按照模組劃分,並且合理組合。往後我將繼續沿用這兩個點,模組劃分和合理組合。

第二個問題,設計的原則?我的回答是:低耦合,高內聚是設計唯一的原則。有可能你還要問不是還有五大原則嗎?這裡我將這五個原則一一道來。

1  單一職責原則。什麼是單一職責?就是一個類,或者一個模組之負責一個任務,一個事情。例如資料庫模組,就負責資料存放區,並提供資料存放區的讀寫介面,而一點點也不關心業務。回頭問為了什嗎?答案是,為了提高內聚。

2  依賴倒置原則。原本是上層的業務實現,需要底層的模組支援,通過解析資料包,很早的時候使用的是解析xml。現在是解析json。那麼如果從xml切換到json時上層業務還需要修改的話,這就沒有做到很好的耦合。依賴倒置就是解決這個類問題,把上層業務對底層的依賴從實體抽象到介面。這個介面有兩個作用,一是契約的意思,誰能夠遵守這個契約,誰就可以上。二是分割的意思,這個介面之上是上層業務,以下是實現單元。回頭問為了什嗎?答案是,為了低耦合。

3 裡氏替換原則。這個針對基類和子類一個較為嚴格的要求。即無論一個子類如何?都應該保持父類對外的介面功能,這樣子類才可以替換完整的替換父類,而具有同樣功能的子類可以相互替換。一塊肉,餵給狼可以 ,餵給老虎可以,餵給獅子也可以,但是餵給牛是不行的。因為牛的父類是食草動物,沒有吃肉的介面。答曰,低耦合,易於移植。

4 介面隔離原則。這個是針對介面的一個要求,是一個外圍要求,即一個介面不能將風馬牛不相及的介面都寫在一個介面類裡面。介面類也應該保持單一職責原則。但是對風馬牛不相及的的介面要各自寫個各自的。總之上帝歸上帝,凱撒歸凱撒。答曰,高內聚。

5 迪米特原則。意思是一個類對於它的依賴類竟可能的知道的越少越好。而依賴類則是儘可能少的暴露實現。在放大到一個模組中,模組之間的類儘可能的相依模組中的類,但是不對外面或者很少的對外面暴露模組內部的類。答曰,高內聚。

最後一個就是開閉原則。即對介面進行開放,對實現進行封閉,這樣即便是出現問題提也是內部實現問題,不用修改介面。要知道修改介面,就要修改依賴類,改動很大的。其實以上的其他原則都是實現了開閉原則。這也是降低耦合提高內聚的法子。

 

這些都是太抽象了,明天寫一點具體的。

Android 設計隨便說說

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.