搶鮮閱讀第1~5章全文

高煥堂 著
本書完整範例程式碼請到網站下載:
www.misoo1.com 或 www.misoo.com.tw
序言
外行人看熱鬧,內行人看門道;
本書培你看Android的設計門道。
Android是一個精美的軟體平台,幕後含有許多設計招式,而且交互運用,形成極為精緻的架構設計。Android就像一匹馬,如果你只想用牠、騎牠的話,本書並非你的好選擇。反之,如果你願意摸牠、陪牠、愛牠、欣賞牠的話,則本書就是你的最佳選擇了。俗語說,外行人看熱鬧,內行人看門道。在本書裡,筆者把你(即本書的讀者)視為準內行人,然後培你去看Android的設計門道;而不只是陪你看看熱鬧而已。所謂門道,就是設計招式(或稱為樣式),它蘊藏了深刻的創意和思路,也含有專家們屢試不爽的手藝和經驗。一旦你擁有了創意、思路和手藝,你就迅速成為內行人了。
筆者是以GoF的Design Patterns一書所列出的設計招式為基礎,說明該書裡的13個招式如何應用於Android應用框架(Application Framework)之設計。如果GoF的Design Patterns一書是成語辭典,而Android應用框架像一本小說,那麼,本書則是一本教科書,一方面藉由成語典故之運用來認識小說的佈局和寫法;另一方面,則藉由小說的佈局和寫法來教你擅用成語,進而發揮無限創意。
GoF的Design Patterns一書列出了23個常用的軟體設計招式。在本書裡,只舉其中的13個招式,說明其如何用應用於Android框架的設計上。從第3章起,每章介紹一個招式,一直到第15章;最後一章(即第16章)則是本書的總結。
Android是免費又開放(Open Source)的軟體平台,人人都可以對它進行修改。但是在修改之前,必須如同庖丁解牛一般,先瞭解牛的骨架結構,才能游刃有餘。如果你有這樣的需要,則本書就是你的一匹千里馬,它讓你了解Android框架的結構,及其幕後的設計門道。於是,當你需要修改、或建立新的應用框架時,就能游刃有餘了。此外,如果你只是一位高尚的觀光客,想來欣賞Android的設計之美,則本書也是你的最佳指南,能讓你容易入寶山且滿載而歸。
高煥堂 謹識於2009年2月
目 錄
第 1 章 設計樣式與Android框架設計, 7
1.1 設計與樣式(即招式)
1.2 簡介設計樣式(Design Pattern)
1.3 從亞歷山大的建築樣式到GoF設計樣式
1.4 舉例說明應用框架之意義
1.5 舉例說明框架設計基本思維:「變與不變之分離」
1.6 欣賞Android裡的13項設計樣式
第 2 章 Android框架與應用類別的接合:卡榫(Hook)函數, 39
2.1 前言
2.2 何謂卡榫(Hook)函數
2.3 Android的卡榫函數範例(一)
2.4 Android的卡榫函數範例(二)
2.5 Android的卡榫函數範例(三)
2.6 卡榫函數與樣式之關係
---- 以Factory Method 和Template Method樣式為例
第 3 章 Template Method樣式, 63
3.1 複習:「變與不變之分離」原則
3.2 複習:「變與不變之分離」手藝
3.3 複習:框架的反向控制
3.4 介紹Template Method樣式
3.5 Android框架與Template Method樣式
第 4 章 Factory Method樣式, 95
4.1 Factory Method樣式美何在?
4.2 介紹Factory Method樣式
4.3 Android框架與Factory Method樣式
第 5 章 Observer樣式, 115
5.1 Observer樣式美何在?
5.2 介紹Observer樣式
5.3 Android框架與Observer樣式
第 6 章 Abstract Factory樣式, 135
6.1 Abstract Factory樣式美何在?
6.2 介紹Abstract Factory樣式
6.3 Android框架與Abstract Factory樣式
第 7 章 Adapter樣式, 151
7.1 Adapter樣式美何在?
7.2 介紹Adapter樣式
7.3 Android框架與Adapter樣式
第 8 章 Composite樣式, 181
8.1 Composite樣式美何在?
8.2 介紹Composite樣式
8.3 Android框架與Composite樣式
第 9 章 Strategy樣式, 199
9.1 Strategy樣式美何在?
9.2 介紹Strategy樣式
9.3 Android框架與Strategy樣式
第 10 章 State樣式, 213
10.1 State樣式美何在?
10.2 介紹State樣式
10.3 Android框架與State樣式
第 11 章 Proxy樣式, 237
11.1 Proxy樣式美何在?
11.2 介紹Proxy樣式
11.3 Android框架與Proxy樣式
第 12 章 Bridge樣式, 277
12.1 Bridge樣式美何在?
12.2 介紹Bridge樣式
12.3 Android框架與Bridge樣式
第 13 章 Iterator樣式, 301
13.1 Iterator樣式美何在?
13.2 介紹Iterator樣式
13.3 Android框架與Iterator樣式
第 14 章 Mediator樣式, 323
14.1 Mediator樣式美何在?
14.2 介紹Mediator樣式
14.3 Android框架與Mediator樣式
第 15 章 Façade樣式, 343
15.1 Façade樣式美何在?
15.2 介紹Façade樣式
15.3 Android框架與Façade樣式
第 16 章 Android框架之美
---- Android帶給IT產業的啟示, 375
16.1 Android美何在?
16.2 Android對兩河流域硬體業之意義
16.3 Android對兩河流域軟體業之意義
16.4 Android與「軟硬整合」之路
16.5 結語
附錄, 403
附錄1: 基類與愚公移山, 404
附錄2: 迎接IT第三波:移(行)動時代, 307
n 原文刊載於 2008元月份的北京程序員雜誌。