- Android設(shè)計(jì)模式與最佳實(shí)踐
- (英)凱爾·繆
- 898字
- 2021-02-07 09:26:36
1.1 如何使用本書
本書旨在展示設(shè)計(jì)模式的應(yīng)用對(duì)Android應(yīng)用程序開發(fā)的直接幫助。我們將專注于開發(fā)一個(gè)完整的客戶端移動(dòng)應(yīng)用程序,重點(diǎn)關(guān)注何時(shí)、如何以及為什么應(yīng)該在Android開發(fā)中使用模式。
從歷史上看,模式的構(gòu)成存在一定程度的爭(zhēng)議。1994年,Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides“四人組”合著了《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》一書。書中闡述了23種設(shè)計(jì)模式,公認(rèn)這些模式能幫助解決軟件工程中可能遇到的幾乎所有問題。正是由于這個(gè)原因,這些模式將成為本書的主干。這些模式可以分成3類:
? 創(chuàng)建型——用于創(chuàng)建對(duì)象
? 結(jié)構(gòu)型——用于組織對(duì)象
? 行為型——用于對(duì)象之間的通信
考慮到實(shí)用性,本書不會(huì)按上述順序逐類講解模式。相反,我們將在開發(fā)應(yīng)用程序的過程中自然而然地逐個(gè)探索出現(xiàn)的模式,而這通常意味著從創(chuàng)建一個(gè)結(jié)構(gòu)開始。
在一個(gè)獨(dú)立的應(yīng)用程序中囊括所有設(shè)計(jì)模式是困難、臃腫和不切實(shí)際的,嘗試使用盡可能多的設(shè)計(jì)模式看起來更現(xiàn)實(shí)。在本書中,這些設(shè)計(jì)模式不會(huì)被直接使用,我們至少會(huì)探索一下為什么要這么做,并且針對(duì)每種情形至少會(huì)用一個(gè)實(shí)例來展示如何使用設(shè)計(jì)模式。
模式不是一成不變的,它們也不能解決所有可能出現(xiàn)的問題。我們將在書末看到,一旦掌握了這個(gè)主題,在沒有既定模式適合的少見的情況下,我們依然可以創(chuàng)建自己的模式或是基于已有模式進(jìn)行改造適配。
簡(jiǎn)而言之,模式不是一套一成不變的規(guī)則,而是一系列經(jīng)受過已知問題檢驗(yàn)的約定俗成的方法。如果你在探索的過程中發(fā)現(xiàn)了竅門,請(qǐng)務(wù)必多多實(shí)踐。經(jīng)過長(zhǎng)久的堅(jiān)持和積累,就會(huì)創(chuàng)造出屬于你自己的模式,它和本書所涵蓋的傳統(tǒng)模式一樣有用。
本書的前幾章重點(diǎn)關(guān)注UI設(shè)計(jì),并介紹一些基本的設(shè)計(jì)模式及其工作原理。大概從第6章開始,我們將把它們和其他模式一起應(yīng)用到真實(shí)的示例中,特別是應(yīng)用到同一個(gè)應(yīng)用程序中。后面幾章的內(nèi)容集中在開發(fā)的后期階段,例如使應(yīng)用程序適配不同的設(shè)備(這是專為講解設(shè)計(jì)模式而構(gòu)建的任務(wù)),從而獲取更廣闊的市場(chǎng)并獲利。
如果你不熟悉Android開發(fā),請(qǐng)參閱前三章中的詳細(xì)介紹。如果你已經(jīng)十分熟悉Android開發(fā),那么可以跳過這幾章的內(nèi)容,而專注于模式本身。
在開始學(xué)習(xí)第一個(gè)模式之前,先來看一下本書將要構(gòu)建的應(yīng)用程序以及它所帶來的挑戰(zhàn)和機(jī)遇是很有意義的。
- Computer Vision for the Web
- Java面向?qū)ο筌浖_發(fā)
- 程序員面試筆試寶典
- PyTorch Artificial Intelligence Fundamentals
- CouchDB and PHP Web Development Beginner’s Guide
- Redis Essentials
- PhpStorm Cookbook
- jQuery開發(fā)基礎(chǔ)教程
- Python深度學(xué)習(xí):基于TensorFlow
- Mastering Linux Security and Hardening
- OpenCV with Python By Example
- Arduino Wearable Projects
- Java EE 7 with GlassFish 4 Application Server
- Spring Web Services 2 Cookbook
- JavaScript語(yǔ)法簡(jiǎn)明手冊(cè)