104835,101234

Make your design better

軟體設計樣式

5分,共1人評分。

軟體設計樣式

您的評分:


出版日期:2017/09/01
出版:臺灣軟體工程學會
作者:薛念林
語言:繁體中文(台灣)
頁數:292
ID:104835
產品類型:電子書
檔案格式:PDF(適合平板)

現折 NT$ 109
閱讀閱省狂歡69折

零售
)檢舉
免費試閱
嵌入閱讀器至您的網頁

內容簡介

軟體設計是軟體的靈魂,有好的設計,才會有好的軟體品質。物件導向設計以是目前最重要的設計方法,它具備許多優良的特性:抽象、封裝、繼承、多型等。然而,這些重要的特性對於許多程式的學習者而言,並不容易理解,太抽象了。軟體設計樣式(design pattern)可以說是物件設計的精華,學習設計樣式可以幫助你有效率的理解物件設計的優點。

你可以把設計樣式想成物件導向系統設計的秘笈,你不用寫上四五個失敗的系統後才發現物件設計的必要,這些秘笈都是前輩們經歷過無數的系統的成功或失敗,把心得包裝成為樣式,以有結構、容易理解的方式發表出來,讓你快速的理解物件設計的好處,了解它的應用。

從小就喜歡看武俠小說,學習程式設計的技巧就像上山習武一般,每學到一個新的技巧就覺得自己的功力更進一步。本書由淺入深,從 Java 物件程式設計、軟體設計原則、物件設計原則、UML圖形模組、軟體重整到設計樣式,希望循序漸進的帶您了解物件設計的武林世界中的各種招式秘笈。

大略上我把學習物件設計分為三個階段:吾見物件、悟見物件、與無見物件。雖說有刻意賣弄玄虛之意,倒也十分貼切。

第一階段:吾見物件

對於軟體設計這一行,不論是哪一種方法論,都應該紮好馬步,對底層的程式設計熟悉。第一階段初次遇見物件導向技術,應該對其程式設計能夠徹底了解,本書在 Part I Java 中回顧 Java 在物件導向實作上的重點,作為後續樣式說明的基礎。基本的語法與程式邏輯設計不在本書範圍,您需要另外找書閱讀。

除了實作,了解圖形模組也是非常重要的,一個中型系統有十萬行的程式碼使很平常的,我們在設計上一定要能視覺化,不能靠蠻力閱讀及維護程式碼。UML 是目前軟體模組設計方面的業學界標準,我們將在 Part II 圖模術中介紹。

第二階段:悟見物件

第二階段進入「設計議題」,探討設計原理與技巧。我將之分為「心訣」與「招式」,其中軟體設計原則、物件導向設計原則、軟體重構與設計樣式

心訣(軟體設計原則)
{獨}字訣:無雙無對,不重複原則
{隱}字訣:私財勿露,資訊隱藏原則
{定}字訣:以定制動,開畢原則
{代}字訣:代父從軍,取代原則
{劈}字訣:涇渭分明,模組化原則
{隔}字訣:生人勿語,迪密特原則
{通}字訣:異中求同,一般化原則
{空}字訣:萬象皆空,善用介面原則
{委}字訣:委以重任,善用包含原則
{反}字訣:身不由己,控制反轉原則

GoF 的設計樣式共有 23 個,連同上面十訣,我稱之為十訣二十三式。但本書僅介紹常用的15 個設計樣式:
{乾坤挪移}: Adapter 樣式
{虛實分離}: Bridge 樣式
{小器晚成}: Factory Method 樣式
{一式多款}: Abstract Factory 樣式
{眾觀其變}: Observer 樣式
{獨一無二}: Singleton 樣式
{一法萬策}: Strategy 樣式
{神行百變}: Decorator 樣式
{剛中帶柔}: Template Method 樣式
{三足鼎力}: MVC 樣式
{隻手乾坤: Composite 樣式
{逍遙遊}: Iterator 樣式
{物換星移}: State 樣式
{七星聚會}: Mediator 樣式
{綿綿不絕}: Chain of Responsibility 樣式

第三階段:無見物件

到了第三層應該對物件的觀念與技巧充分了解,所以心中不再特別的掛念著物件,就如同張無忌忘卻太極的招式才能靈活的運用太極一般。本階段重點放在方法論及開發流程,例如瀑布式開發方式、敏捷式開發方式等,然這部份牽涉亦廣,需要另書描述。

MOOCs 線上課程

現在影音的錄製越來越方便,觀看所需要的網路環境也越來越成熟,於是乎新一代的數位學習機制 MOOCs (Massive Online Open Course) 也流行了起來,MOOCs 在台灣翻成磨課師,很有韻味。本教材的部分內容與 OpenEdu 平台合作,部分內容都已錄製詳細講解,穿插於電子書中。

本書特點
1. 理論與實務並重。一個觀念會用許多的實例、程式碼來說明,程式碼也同步放在 github 上,讓你方便練習。
2. 重點整理。書中會穿插重點圖示,幫助你抓住概念。
3. 問題反思。書中穿插問題反思,引導你思考這些觀念是否真的了解。
4. 模組圖與程式碼並呈。許多會寫程式的,不會畫設計圖,會畫設計圖的不會寫程式,本書許多相互呼應的地方,能夠讓讀者漸漸的熟習兩者的對應。
5. 教學影片。許多觀念用影片呈現會更容易理解,我們錄製了影片來解說。
6. 練習題。每一章節都有許多練習題,讀者透過這些練習題可以更深刻了解內容。練習題包含簡單的選擇、簡答與程式題。

章節目錄

前言
Part I 馬步
ch1 Java 物件基礎設計
1.1 萬相皆物:類別
1.2 陰隱陽顯:封裝
1.3 練習
ch2 Java 物件導向設計
2.1 虛虛實實:抽象與繼承
2.2 一法多形:多型
2.3 無色無相:介面
2.4 抽象的應用:NNEntity
2.5 練習
Part II 圖模術
ch3 圖模概論
3.1 模組
3.2 UML簡介
3.3 練習
ch4 靜態圖模
4.1 類別結構:類別圖
4.2 物件結構:物件圖
4.3 練習
ch5 動態圖模
5.1 功能情境:使用案例圖
5.2 動態行為:狀態圖
5.3 物件互動:循序圖
5.4 練習
ch6 圖模對應
6.1 類別
6.2 關連
6.3 介面實作
6.4 相依性
6.5 練習
Part III 心訣
ch7 軟體設計原則
7.1 涇渭分明:模組化原則
7.2 低耦高聚原則
7.3 無雙無對:不重複原則
7.4 私財勿露:資訊隱藏原則
7.5 生人勿語:迪密特原則
7.6 不變應萬變:開畢原則
7.7 防火牆:防護變異原則
7.8 練習
ch8 物件導向設計原則
8.1 異中求同:一般化原則
8.2 委以重任:善用包含/委託
8.3 空為上:善用介面
8.4 代父從軍:Liskov取代原則
8.5 穠纖合度:介面分割原則
8.6 所依皆幻:相依反轉原則
8.7 身不由己:控制反轉原則
8.8 練習
ch9 把脈清毒:程式碼重構
9.1 把脈:程式壞味道
9.2 清毒:程式碼重構
9.3 練習
Part IV 生成式
ch10 Gamma 23 式:設計樣式
10.1 簡介
10.2 設計樣式的分類
10.3 對軟體工程的協助
10.4 樣式的選擇與採用
10.5 練習
ch11 小器晚成:Factory Method
11.1 目的與動機
11.2 結構與方法
11.3 範例
11.4 練習
ch12 一式多款:Abstract Factory
12.1 目的與動機
12.2 結構與方法
12.3 範例
12.4 練習
ch13 獨一無二:Singleton
13.1 目的與動機
13.2 結構與方法
13.3 有繼承樹的獨體
13.4 練習
Part V 結構式
ch14 乾坤挪移:Adapter
14.1 目的與動機
14.2 結構與方法
14.3 範例
14.4 練習
ch15 虛實分離:Bridge
15.1 目的與動機
15.2 結構與方法
15.3 範例
15.4 練習
ch16 隻手乾坤:Composite
16.1 目的與動機
16.2 結構與方法
16.3 範例
16.4 練習
ch17 神行百變:Decorator
17.1 目的與動機
17.2 結構與方法
17.3 範例
17.4 練習

Part VI 行為式
ch18 一法萬策:Strategy
18.1 目的與動機
18.2 結構與方法
18.3 範例
18.4 討論
18.5 練習
ch19 剛中帶柔:Template Method
19.1 目的與動機
19.2 結構與方法
19.3 比較
19.4 練習
ch20 眾觀其變:Observer
20.1 目的與動機
20.2 結構與方法
20.3 範例
20.4 練習
ch21 三足鼎立:MVC
21.1 目的與動機
21.2 範例
21.3 WebMVC
21.4 練習
ch22 逍遙遊:Iterator
22.1 目的與動機
22.2 範例
22.3 練習
ch23 物換星移:State
23.1 目的與動機
23.2 結構與方法
23.3 範例
23.4 練習
ch24 七星聚會:Mediator
24.1 目的與動機
24.2 結構與方法
24.3 範例
24.4 練習
ch25 綿綿不絕:Chain of Responsibility
25.1 動機與目的
25.2 結構與方法
25.3 練習

Part VII 清風拂山崗
ch26 華山論 :樣式的比較

作者介紹

薛念林,目前任職於逢甲大學資工系副教授,專長在軟體工程、物件導向設計方法、軟體測 試、軟體品質。曾任逢甲大學資訊處軟體開發組的主管,協助建立校園資訊系統導入、系統 的轉型、制度的建立。
目前同時兼任逢甲資訊電機學院不分系榮譽班的主任,不分系的學制台灣較陌生,但國 外很多,基本精神就是大一不分系,到了大二才自由選系,進入到資訊工程、電機工程、電 子工程、自動控制工程、通訊工程等系所就讀。好處是可以在大一階段具體的了解自己所興 趣的系所。你可能會問:提早到高中時認識系所不就得了?其實很難,沒有真實修過課,寫 過程式,修過邏輯設計,電子學,你很難了解自己適合哪個系所。
目前作者同時也是 台灣軟體工程學會的理事長(Software Engineering Association Taiwan; SEAT)。SEAT 成立於 2005 年,主要的目的是進行軟體工程相關的學術研究、教育推廣、產 學交流。本書的收入,七成將贈予軟體工程學會作為推廣軟體工程之用。

留言Facebook 留言

Cheng-Yen Liu 2018-04-28 19:51
比google play還貴,很難在這裡下手。

問問題