PHP設計模式學習手冊

Book description

動態專案的物件導向程式設計

本書以簡單的範例與全方位的應用程式,教導你使用各種物件導向模式,讓你更有效率的建構伺服器端應用程式,並且在過程中增進你的 PHP 編程技巧。

《PHP 設計模式學習手冊》教導你更精緻的編程風格,讓你大幅度的減少開發時間。這些可重複使用的模式可以協助你解決複雜的問題,以及物件導向程式的組織方式,讓你只要調整一部分的程式,就可以修改大型專案。

‧學習設計模式的概念,包括如何針對特定的問題來選擇模式
‧探討物件導向程式設計的概念,如組合、封裝、多型與繼承
‧應用創造型設計模式來動態建立網頁,以工廠方法取代直接實例化
‧使用結構型設計模式,在不更改原始程式的情況下,改變既有的物件或結構
‧使用行為型模式,讓物件互相合作完成任務
‧使用行為型模式與 MySQL 互動,如 Proxy 與 Chain of Responsibility
‧探討如何使用 PHP 的內建設計模式介面

William Sanders 博士,Hartford 大學教授,教導多媒體網頁設計與開發,多年來已累積豐富的 PHP 設計模式使用經驗。他是 ActionScript 3.0 Design Patterns 的作者之一(O’Reilly),已著作 50 本以上電腦以及電腦相關的書籍。

Table of contents

  1. 封面
  2. 書名頁
  3. 英文版權頁
  4. 獻給
  5. 目錄 (1/2)
  6. 目錄 (2/2)
  7. 前言 (1/2)
  8. 前言 (2/2)
  9. 第一部分 設計模式基礎入門
  10. 第一章 PHP與物件導向程式設計
  11. 接著我們進入中階與高階的程式設計
  12. 為什麼要使用物件導向程式設計?
  13. 讓問題更容易解決
  14. 模組化
  15. 類別與物件
  16. 單一任務原則
  17. PHP的建構函式
  18. 以Client作為Requester類別
  19. 關於速度
  20. 開發與修改的速度
  21. 團隊的速度
  22. 循序編程與程序編程的缺點在哪裡?
  23. 循序編程
  24. 程序編程
  25. 現在就給我酬勞,或以後才給
  26. 第二章 OOP的基本概念
  27. 抽象
  28. 抽象類別
  29. 抽象屬性與方法
  30. 介面
  31. 介面和常數
  32. 類型提示:幾乎等於資料型態
  33. 封裝
  34. 日常封裝
  35. 使用可見度來保護封裝
  36. Getter與Setter
  37. 繼承
  38. 多型
  39. 一個名稱,多個實作
  40. 設計模式內建的多型
  41. 慢慢來
  42. 第三章 設計模式的基本概念
  43. MVC鬆耦合與重新注意程式設計
  44. 設計模式的基本原則
  45. 第一設計模式原則
  46. 以程式碼提示來使用介面資料類型
  47. 抽象類別與它們的介面
  48. 第二設計模式原則
  49. 使用Client的基本組合
  50. 委派:IS-A與HAS-A的差異
  51. 設計模式是大張的小抄
  52. 設計模式的組織
  53. 選擇設計模式
  54. 重新設計的原因為何?
  55. 哪裡會改變?
  56. 設計模式與框架有什麼不同?
  57. 第四章 使用設計模式UML
  58. 為什麼要使用整合模組化語言(UML)?
  59. 類別圖
  60. 參與者符號
  61. 關係註解
  62. 相識關係
  63. 聚合關係
  64. 繼承與實作關係
  65. 建立關係
  66. 多重關係
  67. 物件圖
  68. 互動圖
  69. 物件導向編程的關係圖與符號扮演的角色
  70. 繪製UML的工具
  71. 其他的UML
  72. 第二部分 創造型設計模式
  73. 第五章 Factory Method設計模式
  74. 什麼是Factory Method模式?
  75. 使用Factory Method的時機
  76. 極簡範例
  77. 工廠的工作
  78. 用戶端
  79. 適應類別的改變
  80. 添加繪圖元素
  81. 協調產品
  82. 更改文字產品
  83. 更改繪圖產品
  84. 添加新的產品以及參數化的請求
  85. 一個工廠,多個產品
  86. 新工廠
  87. 新產品
  88. 使用參數的用戶端
  89. 協助器類別
  90. 檔案圖
  91. 產品更改:不用理會介面!
  92. 第六章 Prototype設計模式
  93. 什麼是Prototype設計模式?
  94. 使用Prototype模式的時機
  95. 複製功能
  96. 複製品不會重新執行建構函式
  97. 建構函式不應該執行真正的任務
  98. 簡單的Prototype範例
  99. 研究果蠅
  100. 在原型使用OOP
  101. 現代商業組織
  102. 介面的封裝
  103. 介面實作
  104. 用戶端組織
  105. 進行更改,添加功能
  106. 動態物件實例化
  107. PHP王國的原型
  108. 第三部分 結構型設計模式
  109. 第七章 Adapter模式
  110. 什麼是Adapter模式?
  111. 使用Adapter模式的時機
  112. 採用繼承的Adapter模式
  113. 類別Adapter極簡範例:貨幣兌換
  114. 採用組合的Adapter模式
  115. 從桌機到手機
  116. 轉接器與修改
  117. 第八章 Decorator設計模式
  118. 什麼是Decorator模式?
  119. 使用Decorator模式的時機
  120. 極簡Decorator模式
  121. Component介面
  122. Decorator介面
  123. 具體元件
  124. 具體裝飾者
  125. Client
  126. 包裝器呢?
  127. 包裝器之中的基本資料型態
  128. PHP的內建包裝器
  129. 設計模式包裝器
  130. 擁有多個元件的裝飾者
  131. 多重具體元件
  132. 具有多重狀態與值的具體裝飾者
  133. 開發者的約會服務
  134. HTML使用者介面(UI)
  135. 由Client類別傳遞HTML資料
  136. 由變數名稱到物件實例
  137. 添加裝飾
  138. 第四部分 行為型設計模式
  139. 第九章 Template Method模式
  140. 什麼是Template Method模式?
  141. 使用Template Method的時機
  142. 極簡範例:使用Template Method來顯示圖片與 說明文字
  143. Abstract Class
  144. Concrete Class
  145. Client
  146. 好萊塢原則
  147. 同時使用Template Method與其他設計模式
  148. 用戶端減少了工作量
  149. Template Method參與者
  150. Factory Method參與者
  151. 在Template Method設計模式中的hook
  152. 設置Hook
  153. 實作Hook
  154. 用戶端與跳過Hook
  155. 小而強大的Template Method
  156. 第十章 State設計模式
  157. 什麼是State模式?
  158. 使用State模式的時機
  159. 狀態機
  160. 開燈,熄燈:極簡State設計模式
  161. Context為王
  162. 狀態
  163. 透過Context發出用戶端請求
  164. 添加狀態
  165. 更改介面
  166. 更改狀態
  167. 更新Context類別
  168. 更新用戶端
  169. 導航器:更多的選擇與格子
  170. 設置矩陣狀態圖
  171. 設置介面
  172. Context
  173. 狀態 (1/2)
  174. 狀態 (2/2)
  175. 由用戶端挑選路徑
  176. State模式與PHP
  177. 第五部分 MySQL與PHP設計模式
  178. 第十一章 通用連結類別,與安全防護Proxy模式
  179. MySQL的簡單介面與類別
  180. Pregnant介面
  181. 通用MySQL連結類別與靜態變數
  182. 簡單的用戶端
  183. 登錄用的Protection代理
  184. 設置登錄註冊
  185. 實作登錄代理 (1/2)
  186. 實作登錄代理 (2/2)
  187. 代理與現實世界的安全
  188. 第十二章 Strategy設計模式的彈性
  189. 封裝演算法
  190. Strategy與State設計模式的不同
  191. 不要使用條件陳述式,拜託!
  192. 演算法家族
  193. 極簡Strategy模式
  194. 用戶端與觸發器指令碼
  195. Context類別與Strategy介面
  196. 具體的Strategy
  197. 擴展Strategy模式,使它具備資料安全性以及 參數化演算法
  198. 資料安全協助類別
  199. 為演算法方法添加參數
  200. 問卷
  201. 資料輸入模組
  202. 用戶端要求協助
  203. 在Context類別之中,小型但重要的改變
  204. 具體的Strategy (1/2)
  205. 具體的Strategy (2/2)
  206. 靈活的Strategy模式
  207. 第十三章 Chain of Responsibility設計模式
  208. 傳遞任務
  209. 在MySQL Help Desk中的Chain of Responsibility
  210. 建立與載入回應表格
  211. Help Desk的Chain of Responsibility
  212. 自動的Chain of Responsibility與Factory Method
  213. Chain of Responsibility與日期驅動的請求 (1/2)
  214. Chain of Responsibility與日期驅動的請求 (2/2)
  215. Factory Method完成任務
  216. 易於更新
  217. 第十四章 以Observer模式建構多重設備CMS
  218. 內建的觀察者介面
  219. 使用Observer模式的時機
  220. 使用SPL與Observer模式
  221. SplSubject
  222. SplObserver
  223. SplObjectStorage
  224. SPL具體Subject
  225. SPL具體Observer
  226. SPL用戶端
  227. Free Range PHP與Observer模式
  228. 抽象Subject類別與ConcreteSubject實作
  229. Observer與多重具體Observer
  230. Client
  231. 製作一個簡單的CMS
  232. CMS公用程式
  233. 多重設備Observer (1/3)
  234. 多重設備Observer (2/3)
  235. 多重設備Observer (3/3)
  236. 以OOP思考
  237. 索引 (1/2)
  238. 索引 (2/2)
  239. 關於作者
  240. 出版記事

Product information

  • Title: PHP設計模式學習手冊
  • Author(s): William Sanders
  • Release date: July 2013
  • Publisher(s): GoTop Information, Inc.
  • ISBN: None

You might also like

book

優雅的SciPy|Python科學研究的美學

by Juan Nunez-Iglesias, Stéfan van der Walt, Harriet Dashnow

“本書滿足以下重要需求:引導學生優雅的實作訊號與影像、圖學和生物資訊學中的經典演算法” -Lav Varshney University of Illinois “雖然沒有一本書可以教完科學研究Python的所有工具,但是有這本書會讓你看到,它可以幫你節省時間、減少痛苦。” -Greg Wilson Curriculum Lead, DataCamp 歡迎來到科研界Python社群,如果你是一個寫Python的科學研究者,這本實用的指引書,不只教你SciPy和相關函式庫的重要基礎,而且能讓你看到美麗、易讀,同時能應用在實務上程式碼。你會學到如何寫出具備清楚、簡潔和高效的優雅程式碼。 閱讀本書,會看到許多科研界Python生態圈的範例程式碼,這些程式碼足以代表本書的精神。使用實際的科研資料,用SciPy、NumPy、Pandas、scikit-image和其它Python函式庫解決真實世界的問題。 ‧探索NumPy陣列,數值科學計算的底層結構 ‧使用百分位正規化使測量值貼和特定分布 …

book

JAVASCRIPT錦囊妙計第二版

by Shelley Powers

網頁程式設計 "這是一本涵蓋全面並且擁有豐富實務範例的書。" -Dr. AxelRauschmayer, 《Speaking JavaScript》的作者 JavaScript在應用規模上日趨廣泛,如何善用JavaScript解決問題已是一門重要的課題。本書提供眾多的範例程式。這些範例涵蓋瀏覽器、伺服器及行動裝置領域的各種應用。每個範例包含可再利用的程式碼,對JavaScript物件、Node、Ajax、JSON、資料持續、圖形與多媒體、框架、JavaScript模組化、API等均提供了實用的建議。 針對有開發經驗的讀者,本書第一部分包羅JavaScript傳統應用方式以及新進概念。第二部份深入探討伺服器、行動應用開發以及許多最新工具。在過程中你將省下許多寶貴時間並學習到更多尖端技術。 主題簡介: ‧JavaScript經典 ‧陣列、函式與JavaScript物件 ‧存取使用者介面 ‧測試與可及性 ‧建立及使用JavaScript函式庫 ‧前後端的Ajax溝通 ‧豐富互動的網頁效果 …

book

深入理解運算原理|從簡單的機器到無所不能的程式

by Tom Stuart

Tom Stuart,電腦科學家、程式開發人員,也是倫敦一所數位產品顧問公司Codon的創辦人。 他擔任顧問、領導者、培訓師,協助公司改善他們創造軟體產品的方法,尤其是這些方法的品質和清晰度。 終於能以既吸引人又極具實用的方式,學習運算理論和程式語言設計。這本書以你所認知的脈絡解說電腦科學的理論,協助你察覺這些概念何以重要,以及如何將它們注入你的日常的程式設計工作。 本書揚棄數學符號或不熟悉的純理論程式語言(例如Haskell或Lisp),而是以簡化的風格,使用Ruby來呈現形式語意、自動機理論和lambda演算的函數程式設計。因此非常適合精通現代語言、但卻欠缺電腦科學正規訓練(或不足)的程式開發人員。 * 瞭解基礎運算概念,諸如語言裡的圖靈完整性 * 發現程式如何使用動態語意將想法傳達給機器 * 將電腦簡化到只剩基本元素,探索它可以做什麼 * 學習通用圖靈機如何引領今日一般用途的電腦 * 使用簡單的語言和細胞自動機來執行複雜的計算 * …

book

JAVASCRIPT網頁應用程式設計

by Alex MacCaw

一本教您如何開發全能用戶端應用程式的jQuery程式設計指南 「強力推薦的必讀好書。如果你希望能運用最先進的開發工具,來開發最先進的應用程式,《JavaScript網頁應用程式設計》絕對是一本不容錯過的無價珍寶。我早已數不清究竟曾推薦過我幾位讀者拜讀此書了!」 —Addy Osmani AOL的JavaScript程式設計師 若想要開發出功能齊備、操作體驗不亞於桌面應用程式的JavaScript網頁應用程式,勢必得將一些原先由伺服器端程式包辦的工作,搬移到用戶端程式裡,但這並非一件容易的事。本書的主要目的,是希望能讓進階的JavaScript程式設計師,了解在開發最先進用戶端應用程式過程中,所需進行的一切步驟。像是:系統架構和網頁模版的設計、開發框架平台的選擇和伺服器溝通的方式…等等。 本書還會透過許多實際範例應用程式,協助你徹底了解書中所有的重要觀念。相信讀過本書後,你所開發出的JavaScript應用程式,不僅能提供使用者最即時迅速的回應,還能帶給使用者絕佳操作體驗。 ‧說明如何運用模型-檢視器-控制器(Model-View-Controller,簡稱MVC)模式、如何管理應用程式中的相依關係 ‧說明何謂模版(Template)和資料繫結(Data Binding) ‧說明如何載入遠端資料、如何運用Ajax機制、如何發出跨網域的請求 ‧說明如何利用WebSockets和Node.js開發出即時應用程式 ‧說明如何以拖曳/置放方式上傳檔案、如何在上傳的同時顯示目前處理進度 ‧說明如何運用目前主流的框架平台和函式庫,包括:jQuery、Spine和Backbone ‧說明如何撰寫測試程式、如何善用主控台為應用程式除錯 ‧說明部署程式的最佳實務做法,包括:快取(Cache)和精簡程式碼(Minification) …