出版時間:2010年11月 出版社:機(jī)械工業(yè)出版社 作者:Erik M. Buck,Donald A. Yacktman 頁數(shù):336 譯者:陳宗斌,孔祥波
Tag標(biāo)簽:無
前言
Apple的Cocoa軟件所包含的多數(shù)技術(shù)從1988年開始就已經(jīng)投入商業(yè)應(yīng)用,雖然Cocoa可能不夠完善,但仍然具有革命性意義。它已在市場上得到廣泛應(yīng)用,如NEXTSTEP、OPENSTEP、Rhapsody和Yellow Box等都應(yīng)用了該技術(shù)。Cocoa由一系列可重用的軟件框架組成,包含用于構(gòu)建Mac OS X桌面和手機(jī)應(yīng)用程序的對象和相關(guān)資源。近年來,Apple對Cocoa進(jìn)行了顯著的擴(kuò)展并添加了新的軟件開發(fā)工具,從而在Cocoa已經(jīng)提供的高水平性能的基礎(chǔ)上進(jìn)一步提高了程序員的效率。很多程序員在第一次使用此框架時,面對寬泛和復(fù)雜的Cocoa通常會不知所措。Cocoa包含大量的功能部件,但在一致性方面表現(xiàn)卻十分出色,這要歸功于在Cocoa的設(shè)計中應(yīng)用了模式。了解這些模式才能更有效地使用框架,并在編寫自己的應(yīng)用程序時作為指導(dǎo)。本書介紹了Cocoa框架中用到的面向?qū)ο蟮脑O(shè)計模式。設(shè)計模式不是Cocoa的專利,它在很多可重用的軟件庫和軟件開發(fā)環(huán)境中均有所應(yīng)用。設(shè)計模式能識別那些重復(fù)出現(xiàn)的軟件問題和解決它們的最佳做法。本書的主要目的是提供有關(guān)設(shè)計的專業(yè)知識和Cocoa的基本原理,掌握了這些知識,你就可以在自己的軟件中高效地重用那些可靠的正確模式,即使你用的并非Cocoa。
內(nèi)容概要
對于cocoa框架的龐大和復(fù)雜,mac和iphone開發(fā)者常常不知所措。雖然cocoa看起來很龐大,但是一旦理解了它所使用的面向?qū)ο蟮哪J剑憔蜁l(fā)現(xiàn)它極其出色,也非常簡單可靠。 本書首先介紹了所有模式的起源,即“模型—視圖—控制”模式,它是所有mac和iphone開發(fā)的核心,因此從一開始就牢固掌握它非常重要。 本書列出了將在cocoa中用到的主要設(shè)計模式,包括: 基礎(chǔ)模式,如枚舉器、訪問器和兩階段創(chuàng)建; 增強(qiáng)模式,如單例模式、委托模式和響應(yīng)鏈; 隱藏復(fù)雜性的模式,如程序包、類集群、代理和轉(zhuǎn)發(fā),以及控制器。 這些還不是全部!本書精心列出了28種設(shè)計模式,并包含一些依然有效的示例代碼。本書還講解了core data模型、appkit視圖,以及綁定和控制器。 本書利用objective-c和cocoa框架的基礎(chǔ),清晰地定義了每種模式能解決的問題,所有mac和iphone開發(fā)者都應(yīng)該學(xué)習(xí)。
作者簡介
Erik M. Buck于1993年成立了EMB & Associates公司,并且通過利用后來成為Apple的Cocoa框架的NeXT/Apple軟件技術(shù),把公司建設(shè)成太空和娛樂軟件業(yè)中的領(lǐng)導(dǎo)者。Buck先生的工作還涉及建筑業(yè)、給8中級學(xué)生講授科學(xué)、展覽油畫肖像,以及開發(fā)可替代燃料汽車。Buck先生在2002年出售了
書籍目錄
譯者序 序 前言 作者簡介 第一部分 一種可控制一切的模式 第1章 模型-視圖-控制器 1.1 cocoa中的mvc 1.2 小結(jié) 第2章 分析和應(yīng)用mvc 2.1 非mvc設(shè)計 2.2 mvc設(shè)計 2.3 小結(jié)第二部分 基礎(chǔ)模式 第3章 兩階段創(chuàng)建 3.1 動機(jī) 3.2 解決方案 3.3 cocoa中的示例 3.4 后果 第4章 模板方法 4.1 動機(jī) 4.2 解決方案 4.3 cocoa中的示例 4.4 后果 第5章 動態(tài)創(chuàng)建 5.1 動機(jī) 5.2 解決方案 5.3 cocoa中的示例 5.4 后果 第6章 類別 6.1 動機(jī) 6.2 解決方案 6.3 cocoa中的示例 6.4 后果 第7章 匿名類型和異類容器 7.1 動機(jī) 7.2 解決方案 7.3 cocoa中的示例 7.4 后果 第8章 枚舉器 8.1 動機(jī) 8.2 解決方案 8.3 cocoa中的示例 8.4 后果 第9章 執(zhí)行選擇器和延遲執(zhí)行 9.1 動機(jī) 9.2 解決方案 9.3 cocoa中的示例 9.4 后果 第10章 訪問器 10.1 動機(jī) 10.2 解決方案 10.3 cocoa中的示例 10.4 后果 第11章 歸檔和解檔 11.1 動機(jī) 11.2 解決方案 11.3 cocoa中的示例 11.4 后果 第12章 復(fù)制第三部分 主要通過解耦來變得更強(qiáng)大的模式 第13章 單例 第14章 通知 第15章 委托 第16章 層次結(jié)構(gòu) 第17章 插座變量、目標(biāo)和動作 第18章 響應(yīng)者鏈 第19章 聯(lián)合存儲 第20章 調(diào)用 第21章 原型 第22章 享元 第23章 裝飾器第四部分 主要用于隱藏復(fù)雜性的模式 第24章 包 第25章 類簇 第26章 外觀 第27章 代理和轉(zhuǎn)發(fā) 第28章 管理者 第29章 控制器第五部分 模式應(yīng)用的實用工具 第30章 核心數(shù)據(jù)模型 第31章 應(yīng)用程序工具箱視圖 第32章 綁定和控制器 附錄 資源
章節(jié)摘錄
插圖:第一部分一種可控制一切的模式第1章模型-視圖-控制器模型-視圖-控制器(MVC)是世界上最古老、最成功的可復(fù)用軟件設(shè)計模式之一。它最初出現(xiàn)在20世紀(jì)70年代的Smalltalk編程語言中。MVC定義了Cocoa框架的總體結(jié)構(gòu)。它是一種高級別的模式,能將多個協(xié)作對象的大型群組劃分為獨立的子系統(tǒng):模型、視圖和控制器。分析通用應(yīng)用程序的功能和行為,有助于理解子系統(tǒng)在MVC模式中擔(dān)當(dāng)?shù)慕巧?。多?shù)應(yīng)用程序存儲信息、檢索信息,并將信息呈現(xiàn)給用戶,使用戶能夠編輯或操縱信息。在面向?qū)ο蟮膽?yīng)用程序中,信息不只是字節(jié),對象會將信息與使用該信息的方法封裝在一起。應(yīng)用程序中的每個對象都應(yīng)該符合且僅符合以下子系統(tǒng)之一:·模型。模型子系統(tǒng)由為應(yīng)用程序提供獨特功能和信息存儲的對象組成。模型包含處理應(yīng)用程序數(shù)據(jù)的所有規(guī)則。模型是使應(yīng)用程序體現(xiàn)其價值的關(guān)鍵子系統(tǒng)。保證模型子系統(tǒng)的獨立而不依賴于視圖或者控制器子系統(tǒng)非常關(guān)鍵?!ひ晥D。視圖子系統(tǒng)用于展示從模型中收集的信息,并為用戶提供與此信息交互的方式。理解視圖的關(guān)鍵是要知道總是有大量視圖存在。例如,可能有圖形用戶界面視圖、打印報表視圖、命令行視圖、基于Web的視圖以及腳本語言視圖,它們都與同一個模型交互。·控制器??刂破鞯哪康氖墙獬P秃鸵晥D之間的耦合。用戶與視圖交互的結(jié)果是向控制器子系統(tǒng)發(fā)出請求,還可能會進(jìn)一步請求改變模型中的信息??刂破鬟€要處理數(shù)據(jù)的轉(zhuǎn)換和格式,以呈現(xiàn)給用戶。例如,模型中可能以米存儲數(shù)據(jù),但根據(jù)用戶的偏好,控制器可能要將數(shù)據(jù)轉(zhuǎn)換為英尺。模型可能將對象存儲在無序集合中,但控制器可能會先為這些對象排序,然后再轉(zhuǎn)到視圖中展示給用戶。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載