Android設計模式系列(0)–開篇

來源:互聯網
上載者:User

=======================2011-08-26==================================
有時候,最難的是堅持;有時候缺少的是信念。
=======================2011-08-07==================================
從接觸設計模式到如今大概4年左右的時間,一直都想有朝一日定要精通,坐於床頭,側望左右,設計模式的書買了7,8本了,也看了很多參考和視頻,也用到了一些。但是今天我終於停下來,停下來梳理,停下來欣賞,也停下來反省,總之,我今天停下來了,是為了走的更好,走的更遠。
如果有幸我能夠把這個系列寫到23+N,我想至少我的技術上會為我增色不少,會為我帶來更強烈的信心;
如果有幸我能夠把這個系列寫到23+N,我想至少我去買者方面書籍的時候,我不會那麼動心了,我也許不深,你也未必;
如果有幸我能夠把這個系列寫到23+N,我想至少後面架構和android的底層我會更加瞭解,我會看的更清楚,也看的更遠。
我自己也是這麼想得,所以我會堅持,我要把這個進行到底,寫下去,寫完23,我寫+N,寫完SDK,我寫別人的開源項目,寫完開源,我寫我個人項目,寫完個人項目,我寫我自己的開源項目,至少我要寫到我認為我應該繼續寫的時候,我如是想,也如是做!
我就是這麼想的!
=======================2011-07-29==================================
看了很多年的設計模式,也看了很多種設計模式,也在工作中用了幾個常見的設計模式。
android中,包括源碼和一些開源項目,用到了很多經典設計模式,而且也用的非常的精彩。
學習android也有一些日子了,有空的時候看看原始碼,看看開源項目的代碼,自己也會再工作中寫寫代碼。
今天,鬥膽,基於android(其實就是java),把自己對設計模式的一些粗淺認識,默默的分享出來,希望能得到各位同仁的指點,以期設計能力更進一步。
我將以《設計模式:可複用物件導向軟體的基礎》為準,發掘android中各種設計模式的使用方式,提取核心部分,做為執行個體。
因為不需要寫代碼,應用情境又一般是android中內建的,所以文中可能會注重意圖介紹和UML結構圖的繪製,然後具體設計模式的本身和擴充還需要各位參考其他資料。
下面我列舉一些重要的認識點:

設計模式,提供了很多軟體工程問題所需處理的解決方案。

根據模式的目的可分為3類:
1.建立型模式:與對象的建立有關。
2.結構性模式:處理類與對象的組合。
3.行為性模式:對類或對象怎樣互動和怎樣 分配職責進行描述。

物件導向設計的2個基本原則:
1.針對介面編程,而不是針對實現編程。
2.優先使用對象組合,而不是類繼承。 

物件導向設計的5個設計原則:
1.單一職責原則(SRP)
2.開放封閉原則(OCP) 
3.Liskov替換原則(LSP)
4.依賴倒置原則(DIP)
5.介面隔離原則(ISP) 

23中設計模式:
1.建立型模式:
(1).Factory 方法模式
(2).抽象原廠模式
(3).建立者模式
(4).原型模式
(5).單例模式
2.結構型模式:
(6).適配器模式
(7).橋模式
(8).組合模式
(9).裝飾模式
(10).面板模式
(11).享元模式
(12).代理模式
3.行為型模式
(13).解譯器模式
(14).模板方法模式
(15).職責鏈模式
(16).命令模式
(17).迭代器模式
(18).中介者模式
(19).備忘錄模式
(20).觀察者模式
(21).狀態模式
(22).策略模式
(23).訪問者模式 
除此之外,後來人發現很多新的模式,如空模式等。

下面列舉幾個常見的問題導致重新設計,可能需要設計模式來分析解決:
1.通過顯示的指定一個類來建立對象
2.對特殊操作的依賴
3.對硬體和軟體平台的依賴
4.對對象表示或實現的依賴
5.演算法依賴
6.緊耦合
7.通過生產子類來擴充功能
8.不能方便的對類進行修改

軟體的設計臭味:
1.僵化性
2.脆弱性
3.頑固性
4.粘滯性
5.不必要的複雜性
6.不必要的重複
7.晦澀性 
... ...
總而言之,一句話,物件導向特性+原則+模式,折騰來折騰去就是這麼個回事。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.