出版時間:2010年3月 出版社:機(jī)械工業(yè)出版社 作者:秦小波 頁數(shù):545
Tag標(biāo)簽:無
前言
終于可以寫前言了,這說明本書已經(jīng)基本完成,可以長噓一口氣了。 為什么寫這本書 今年5月份,我在JavaEye上發(fā)了一個帖子,其中提到自己已經(jīng)工作9年了,總覺得這9年不應(yīng)該就這么荒廢了,應(yīng)該給自己這9年的工作寫一個總結(jié),總結(jié)的初稿就是這本書。 在談為什么寫這本書之前,先抖抖自己這9年的職業(yè)生涯吧。大學(xué)時我是學(xué)習(xí)機(jī)械的,當(dāng)時計(jì)算機(jī)剛剛熱起來,自己也喜歡玩一些新奇的東西,記得最清楚的是用VB寫了一個自由落體的小程序,模擬小球從桌面掉到地板上,然后計(jì)算反彈趨勢,很有成就感。于是2000年畢業(yè)時,我削尖了腦袋進(jìn)入了IT行業(yè),成為了一名真正的IT男,干著起得比雞早、睡得比雞晚的程序員工作,IT男的辛酸有誰知曉! 坦白地說,我的性格比較沉悶,屬于典型的程序員型悶騷,比較適合做技術(shù)研究。在這9年里,項(xiàng)目管理做過,系統(tǒng)分析做過,小兵當(dāng)過,團(tuán)隊(duì)領(lǐng)導(dǎo)人也當(dāng)過,但至今還是一個做技術(shù)的。要總結(jié)這9年技術(shù)生涯,總得寫點(diǎn)什么吧,最好是還能對其他人有點(diǎn)兒用的。那寫什么好呢?Spring、Struts等工具框架類的書太多太多,很難再寫出花樣來,經(jīng)過一番思考,最后選擇了一個每一位技術(shù)人員都需要掌握的、但普及程度還不是非常高的、又稍微有點(diǎn)難度的主題-設(shè)計(jì)模式(Design Pattern,DP)。 中國人有不破不立的思維,遠(yuǎn)的如秦始皇焚書坑儒、項(xiàng)羽火燒阿房宮,近的如破“四舊”。正是由于有了這樣的思想,于是乎能改的就改,不能改的就推翻重寫,沒有一個持續(xù)開發(fā)藍(lán)圖。為什么要破才能立呢?為什么不能持續(xù)地發(fā)展?你說這是誰的錯呢?是你架構(gòu)師的錯,你不能持續(xù)地?fù)肀ё兓@是一個系統(tǒng)最失敗的地方。那怎么才能實(shí)現(xiàn)擁抱變化的理想呢?設(shè)計(jì)模式! 設(shè)計(jì)模式是什么?它是一套理論,由軟件界的先輩們(The Gang of Four:包括Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)總結(jié)出的一套可以反復(fù)使用的經(jīng)驗(yàn),它可以提高代碼的可重用性,增強(qiáng)系統(tǒng)的可維護(hù)性,以及解決一系列的復(fù)雜問題。做軟件的人都知道需求是最難把握的,我們可以分析現(xiàn)有的需求,預(yù)測可能發(fā)生的變更,但是我們不能控制需求的變更。問題來了,既然需求的變更是不可控的,那如何擁抱變化呢?幸運(yùn)的是,設(shè)計(jì)模式給了我們指導(dǎo),專家們首先提出了6大設(shè)計(jì)原則,但這6大設(shè)計(jì)原則僅僅是一系列“口號”,真正付諸實(shí)施還需要有詳盡的指導(dǎo)方法,于是23種設(shè)計(jì)模式出現(xiàn)了。 設(shè)計(jì)模式已經(jīng)誕生15年了,在這15年里出版了很多關(guān)于它的經(jīng)典著作,相信大家都能如數(shù)家珍。盡管有這么多書,工作5年了還不知道什么是策略模式、狀態(tài)模式、責(zé)任鏈模式的程序員大有人在。不信?你找個機(jī)會去“虛心”地請教一下你的同事,看看他對設(shè)計(jì)模式有多少了解。不要告訴我要翻書才明白!設(shè)計(jì)模式不是工具,它是軟件開發(fā)的哲學(xué),它能指導(dǎo)你如何去設(shè)計(jì)一個優(yōu)秀的架構(gòu)、編寫一段健壯的代碼、解決一個復(fù)雜的需求。
內(nèi)容概要
如果說“四人幫”的《設(shè)計(jì)模式》是設(shè)計(jì)模式領(lǐng)域的“圣經(jīng)”,那么之后出版的各種關(guān)于設(shè)計(jì)模式的書都可稱之為“圣經(jīng)”的“注釋版”或“圣經(jīng)的故事”。本書是得道者對“圣經(jīng)”的“禪悟”,它既不像“圣經(jīng)”那樣因?yàn)橄ё秩缃?、字字珠璣而深奧、晦澀和難懂,又比“圣經(jīng)”的“注釋版”更深刻和全面、更通俗和生動、更接近開發(fā)者遇到的實(shí)踐場景,更具指導(dǎo)性。本書兼收并蓄、博采眾長,也許是設(shè)計(jì)模式領(lǐng)域里的下一個里程碑之作。
全書共分為四部分,第一部分從原理的角度闡述了面向?qū)ο蟪绦蛟O(shè)計(jì)的6大原則;第二部生動地講解和剖析了23種常見的設(shè)計(jì)模式,并進(jìn)行了擴(kuò)展,通俗易懂,趣味性極強(qiáng)而又緊扣模式的核心;第三部分對各種相關(guān)聯(lián)的設(shè)計(jì)模式進(jìn)行了深入分析和比較,旨在闡明各種設(shè)計(jì)模式比較理想的應(yīng)用場景和它們之間的區(qū)別;第四部分探討了設(shè)計(jì)模式的混編,講解了如何在實(shí)際開發(fā)中將各種設(shè)計(jì)模式混合起來使用,以發(fā)揮設(shè)計(jì)模式的最大效用。最后,本書還附有一份設(shè)計(jì)模式彩圖,可以裁剪,便于參考。
禪宗曰:“教外別傳,不立文字”,禪的境界本不該用文字來描述,言語也道不明白,但為了傳道,悟道者仍要藉言語來說明。
何為禪?一種境界,一種體驗(yàn),一種精神領(lǐng)域的最高修為。何為設(shè)計(jì)模式?對面向?qū)ο笏枷氲纳羁汤斫?,對軟件設(shè)計(jì)方法和編碼經(jīng)驗(yàn)的完美總結(jié)。
本書是創(chuàng)造者的心路歷程,是實(shí)踐者的智慧結(jié)晶,是得道者的禪悟。它通過幽默風(fēng)趣的故事和通俗易懂的講述方式,引導(dǎo)你悟透設(shè)計(jì)模式的真諦。
如果你在思考下面這些問題,也許本書就是你想要的!
1. 業(yè)務(wù)分析如此細(xì)致,架構(gòu)設(shè)計(jì)如此健壯、可靠和穩(wěn)定,但為何仍然無法適應(yīng)業(yè)務(wù)發(fā)展的需要,而且生命周期只有短短幾年?
2.
為何你的團(tuán)隊(duì)協(xié)作了多年卻始終無法沉淀出可復(fù)用的組件或構(gòu)件?依賴和解耦的標(biāo)準(zhǔn)是什么?如何才能做到既不相互“刺傷”,又能相互“溫暖”?
3. 架構(gòu)設(shè)計(jì)時,如何才能實(shí)現(xiàn)高可擴(kuò)展性和易維護(hù)性?如何避免維護(hù)成本大于開發(fā)成本的悲哀現(xiàn)狀?
4. 交易型的系統(tǒng)如何大規(guī)模地借用設(shè)計(jì)模式的思想,以實(shí)現(xiàn)高性能、高可靠性的建設(shè)目標(biāo)?
5.
架構(gòu)設(shè)計(jì)時,如果遇到這樣的情況:“有一個請求者和多個處理者,同時要求二者之間解耦,以便處理者可以動態(tài)地?cái)U(kuò)展”,這該如何處理?
6.
如果遇到過這樣場景:“多個對象依賴一個對象,該對象狀態(tài)改變時所有的依賴者都要相應(yīng)地獲得通知,并且要求對象間松散耦合”,這該如何處理?
7. 萬物皆對象,不可能把每一個對象都分解到原子級別,如何適度地細(xì)化對象的顆粒度?怎樣界定對象的粒度大?。?br /> 8. 同為創(chuàng)建類模式,工廠方法模式和建造者模式都可以創(chuàng)建對象,它們之間有何區(qū)別?適用的場景又有何不同?
9. 狀態(tài)模式和策略模式的通用類圖如此相似,在實(shí)際的應(yīng)用場景中如何區(qū)分它們?
10. 如何使命令模式和責(zé)任鏈模式完美搭配并建立一個高可擴(kuò)展性的系統(tǒng)架構(gòu),以解決客戶端和處理者都參數(shù)化的場景?
11. 觀察者模式和責(zé)任鏈模式真的沒有可比性嗎?它們的主要區(qū)別何在?實(shí)際應(yīng)用中如何使用?
12. 組合模式只能用來表示部分和整體的關(guān)系嗎?其擴(kuò)展出的規(guī)格模式是如何實(shí)現(xiàn)的?透明的組合模式和安全的組合模式有何區(qū)別?
作者簡介
秦小波,資深軟件開發(fā)工程師、項(xiàng)目經(jīng)理、系統(tǒng)分析師和架構(gòu)師(獲Sun架構(gòu)師認(rèn)證),從事IT行業(yè)10余年,經(jīng)驗(yàn)極其豐富,現(xiàn)就任于交通銀行軟件研發(fā)中心。精通設(shè)計(jì)模式,對設(shè)計(jì)模式有深刻認(rèn)識和獨(dú)到見解,創(chuàng)造性地提出了自己在大量實(shí)踐中總結(jié)出來的新的設(shè)計(jì)模式。擅長于SSH、iBati
書籍目錄
前 言
第一部分 大旗不揮,誰敢沖鋒——熱身篇
第1章 單一職責(zé)原則
1.1 我是“?!鳖悾铱梢該?dān)任多職嗎
1.2 絕殺技,打破你的傳統(tǒng)思維
1.3 我單純,所以我快樂
1.4 最佳實(shí)踐
第2章 里氏替換原則
2.1 愛恨糾葛的父子關(guān)系
2.2 糾紛不斷,規(guī)則壓制
2.3 最佳實(shí)踐
第3章 依賴倒置原則
3.1 依賴倒置原則的定義
3.2 言而無信,你太需要契約
3.3 依賴的三種寫法
3.4 最佳實(shí)踐
第4章 接口隔離原則
4.1 接口隔離原則的定義
4.2 美女何其多,觀點(diǎn)各不同
4.3 保證接口的純潔性
4.4 最佳實(shí)踐
第5章 迪米特法則
5.1 迪米特法則的定義
5.2 我的知識你知道得越少越好
5.3 最佳實(shí)踐
第6章 開閉原則
6.1 開閉原則的定義
6.2 開閉原則的廬山真面目
6.3 為什么要采用開閉原則
6.4 如何使用開閉原則
6.5 最佳實(shí)踐
第二部分 我惹了誰——真刀實(shí)槍篇
第7章 單例模式
7.1 我是皇帝我獨(dú)苗
7.2 單例模式的定義
7.3 單例模式的應(yīng)用
7.4 單例模式的擴(kuò)展
7.5 最佳實(shí)踐
第8章 工廠方法模式
8.1 女媧造人的故事
8.2 工廠方法模式的定義
8.3 工廠方法模式的應(yīng)用
8.3.1 工廠方法模式的優(yōu)點(diǎn)
8.3.2 工廠方法模式的使用場景
8.4 工廠方法模式的擴(kuò)展
8.5 最佳實(shí)踐
第9章 抽象工廠模式
9.1 女媧的失誤
9.2 抽象工廠模式的定義
9.3 抽象工廠模式的應(yīng)用
9.3.1 抽象工廠模式的優(yōu)點(diǎn)
9.3.2 抽象工廠模式的缺點(diǎn)
9.3.3 抽象工廠模式的使用場景
9.3.4 抽象工廠模式的注意事項(xiàng)
9.4 最佳實(shí)踐
第10章 模板方法模式
10.1 輝煌工程—制造悍馬
10.2 模板方法模式的定義
10.3 模板方法模式的應(yīng)用
10.4 模板方法模式的擴(kuò)展
10.5 最佳實(shí)踐
第11章 建造者模式
11.1 變化是永恒的
11.2 建造者模式的定義
11.3 建造者模式的應(yīng)用
11.4 建造者模式的擴(kuò)展
11.5 最佳實(shí)踐
第12章 代理模式
12.1 我是游戲至尊
12.2 代理模式的定義
12.3 代理模式的應(yīng)用
12.3.1 代理模式的優(yōu)點(diǎn)
12.3.2 代理模式的應(yīng)用
12.4 代理模式的擴(kuò)展
12.4.1 普通代理
12.4.2 強(qiáng)制代理
12.4.3 代理是有個性的
12.4.4 虛擬代理
12.4.5 動態(tài)代理
12.5 最佳實(shí)踐
第13章 原型模式
13.1 個性化電子賬單
13.2 原型模式的定義
13.3 原型模式的應(yīng)用
13.3.1 原型模式的優(yōu)點(diǎn)
13.3.2 原型模式的使用場景
13.4 原型模式的注意事項(xiàng)
13.4.1 構(gòu)造函數(shù)不會被執(zhí)行
13.4.2 淺拷貝和深拷貝
13.4.3 clone與final兩個冤家
13.5 最佳實(shí)踐
第14章 中介者模式
14.1 進(jìn)銷存管理是這個樣子的嗎?
14.2 中介者模式的定義
14.3 中介者模式的應(yīng)用
14.4 中介者模式的實(shí)際應(yīng)用
14.5 最佳實(shí)踐
第15章 命令模式
15.1 項(xiàng)目經(jīng)理也難當(dāng)
15.2 命令模式的定義
15.3 命令模式的應(yīng)用
15.3.1 命令模式的優(yōu)點(diǎn)
15.3.2 命令模式的缺點(diǎn)
15.3.3 命令模式的使用場景
15.4 命令模式的擴(kuò)展
15.4.1 未講完的故事
15.4.2 反悔問題
15.5 最佳實(shí)踐
第16章 責(zé)任鏈模式
16.1 古代婦女的枷鎖—“三從四德”
16.2 責(zé)任鏈模式的定義
16.3 責(zé)任鏈模式的應(yīng)用
16.3.1 責(zé)任鏈模式的優(yōu)點(diǎn)
16.3.2 責(zé)任鏈模式的缺點(diǎn)
16.3.3 責(zé)任鏈模式的注意事項(xiàng)
16.4 最佳實(shí)踐
第17章 裝飾模式
17.1 罪惡的成績單
17.2 裝飾模式的定義
17.3 裝飾模式應(yīng)用
17.3.1 裝飾模式的優(yōu)點(diǎn)
17.3.2 裝飾模式的缺點(diǎn)
17.3.3 裝飾模式的應(yīng)用
17.4 最佳實(shí)踐
第18章 策略模式
18.1 劉備江東娶妻,趙云他容易嗎
18.2 策略模式的定義
18.3 策略模式的應(yīng)用
18.3.1 策略模式的優(yōu)點(diǎn)
18.3.2 策略模式的缺點(diǎn)
18.3.3 策略模式的應(yīng)用
18.3.4 策略模式的注意事項(xiàng)
18.4 策略模式的擴(kuò)展
18.5 最佳實(shí)踐
第19章 適配器模式
19.1 業(yè)務(wù)發(fā)展—上帝才能控制
19.2 適配器模式的定義
19.3 適配器模式的應(yīng)用
19.3.1 適配器模式的優(yōu)點(diǎn)
19.3.2 適配器模式的應(yīng)用
19.3.3 適配器模式的注意事項(xiàng)
19.4 適配器模式的擴(kuò)展
19.5 最佳實(shí)踐
第20章 迭代器模式
20.1 整理項(xiàng)目信息—苦差事
20.2 迭代器模式的定義
20.3 迭代器模式的應(yīng)用
20.4 最佳實(shí)踐
第21章 組合模式
21.1 公司的人事架構(gòu)是這樣的嗎
21.2 組合模式的定義
21.3 組合模式的應(yīng)用
21.3.1 組合模式的優(yōu)點(diǎn)
21.3.2 組合模式的缺點(diǎn)
21.3.3 組合模式的應(yīng)用
21.3.4 組合模式的注意事項(xiàng)
21.4 組合模式的擴(kuò)展
21.4.1 真實(shí)的組合模式
21.4.2 透明的組合模式
21.4.3 組合模式的遍歷
21.5 最佳實(shí)踐
第22章 觀察者模式
22.1 韓非子身邊的臥底是誰派來的
22.2 觀察者模式的定義
22.3 觀察者模式的應(yīng)用
22.3.1 觀察者模式的優(yōu)點(diǎn)
22.3.2 觀察者模式的缺點(diǎn)
22.3.3 觀察者模式的應(yīng)用
22.3.4 觀察者模式的注意事項(xiàng)
22.4 觀察者模式的擴(kuò)展
22.4.1 Java世界中的觀察者模式
22.4.2 項(xiàng)目中真實(shí)觀察者模式
22.4.3 訂閱發(fā)布模型
22.5 最佳實(shí)踐
第23章 門面模式
23.1 我要投遞信件
23.2 門面模式的定義
23.3 門面模式的應(yīng)用
23.3.1 門面模式的優(yōu)點(diǎn)
23.3.2 門面模式的缺點(diǎn)
23.3.3 門面模式的應(yīng)用
23.4 門面模式的注意事項(xiàng)
23.4.1 一個子系統(tǒng)可以有多個門面
23.4.2 門面不參與子系統(tǒng)內(nèi)的業(yè)務(wù)邏輯
23.5 最佳實(shí)踐
第24章 備忘錄模式
24.1 如此追女孩子,你還不樂
24.2 備忘錄模式的定義
24.3 備忘錄模式的應(yīng)用
24.3.1 備忘錄模式的應(yīng)用
24.3.2 備忘錄模式的注意事項(xiàng)
24.4 備忘錄模式的擴(kuò)展
24.4.1 clone方式的備忘錄
24.4.2 多狀態(tài)的備忘錄模式
24.4.3 多備份的備忘錄
24.4.4 封裝得更好一點(diǎn)
24.5 最佳實(shí)踐
第25章 訪問者模式
25.1 員工的隱私何在?
25.2 訪問者模式的定義
25.3 訪問者模式的應(yīng)用
25.3.1 訪問者模式的優(yōu)點(diǎn)
25.3.2 訪問者模式的缺點(diǎn)
25.3.3 訪問者模式的應(yīng)用
25.4 訪問者模式的擴(kuò)展
25.4.1 統(tǒng)計(jì)功能
25.4.2 多個訪問者
25.4.3 雙分派
25.5 最佳實(shí)踐
第26章 狀態(tài)模式
26.1 城市的縱向發(fā)展功臣—電梯
26.2 狀態(tài)模式的定義
26.3 狀態(tài)模式的應(yīng)用
26.3.1 狀態(tài)模式的優(yōu)點(diǎn)
26.3.2 狀態(tài)模式的缺點(diǎn)
26.3.3 狀態(tài)模式的應(yīng)用
26.3.4 狀態(tài)模式的注意事項(xiàng)
26.4 最佳實(shí)踐
第27章 解釋器模式
27.1 四則運(yùn)算你會嗎
27.2 解釋器模式的定義
27.3 解釋器模式的應(yīng)用
27.3.1 解釋器模式的優(yōu)點(diǎn)
27.3.2 解釋器模式的缺點(diǎn)
27.3.3 解釋器模式使用的場景
27.3.4 解釋器模式的注意事項(xiàng)
27.4 最佳實(shí)踐
第28章 享元模式
28.1 內(nèi)存溢出,司空見慣
28.2 享元模式的定義
28.3 享元模式的應(yīng)用
28.3.1 享元模式優(yōu)點(diǎn)和缺點(diǎn)
28.3.2 享元模式的應(yīng)用
28.4 享元模式的擴(kuò)展
28.4.1 線程安全的問題
28.4.2 性能平衡
28.5 最佳實(shí)踐
第29章 橋梁模式
29.1 我有一個夢想……
29.2 橋梁模式的定義
29.3 橋梁模式的應(yīng)用
29.3.1 橋梁模式的優(yōu)點(diǎn)
29.3.2 橋梁模式的應(yīng)用
29.3.3 橋梁模式的注意事項(xiàng)
29.4 最佳實(shí)踐
第三部分 誰的地盤誰做主—模式PK篇
第30章 創(chuàng)建類模式大PK
30.1 工廠方法模式VS建造者模式
30.1.1 按工廠方法建造超人
30.1.2 按建造者模式建造超人
30.1.3 最佳實(shí)踐
30.2 抽象工廠模式VS建造者模式
30.2.1 按抽象工廠模式生產(chǎn)車輛
30.2.2 按建造者模式生產(chǎn)車輛
30.2.3 最佳實(shí)踐
第31章 結(jié)構(gòu)類模式大PK
31.1 代理模式VS裝飾模式
31.1.1 代理模式
31.1.2 裝飾模式
31.1.3 最佳實(shí)踐
31.2 裝飾模式VS適配器模式
31.2.1 按裝飾模式描述丑小鴨
31.2.2 按適配器模式實(shí)現(xiàn)丑小鴨
31.2.3 最佳實(shí)踐
第32章 行為類模式大PK
32.1 命令模式VS策略模式
32.1.1 策略模式實(shí)現(xiàn)壓縮算法
32.1.2 命令模式實(shí)現(xiàn)壓縮算法
32.1.3 小結(jié)
32.2 策略模式VS狀態(tài)模式
32.2.1 策略模式實(shí)現(xiàn)人生
32.2.2 狀態(tài)模式實(shí)現(xiàn)人生
32.2.3 小結(jié)
32.3 觀察者模式VS責(zé)任鏈模式
32.3.1 責(zé)任鏈模式實(shí)現(xiàn)DNS解析過程
32.3.2 觸發(fā)鏈模式實(shí)現(xiàn)DNS解析過程
32.3.3 小結(jié)
第33章 跨戰(zhàn)區(qū)PK
33.1 策略模式VS橋梁模式
33.1.1 策略模式實(shí)現(xiàn)郵件發(fā)送
33.1.2 橋梁模式實(shí)現(xiàn)郵件發(fā)送
33.1.3 最佳實(shí)踐
33.2 門面模式VS中介者模式
33.2.1 中介者模式實(shí)現(xiàn)工資計(jì)算
33.2.2 門面模式實(shí)現(xiàn)工資計(jì)算
33.2.3 最佳實(shí)踐
33.3 包裝模式群PK
33.3.1 代理模式
33.3.2 裝飾模式
33.3.3 適配器模式
33.3.4 橋梁模式
33.3.5 最佳實(shí)踐
第四部分 完美世界—混編模式
第34章 命令模式+責(zé)任鏈模式
34.1 搬移UNIX的命令
34.2 混編小結(jié)
第35章 工廠方法模式+策略模式
35.1 迷你版的交易系統(tǒng)
35.2 混編小結(jié)
第36章 觀察者模式+中介者模式
36.1 事件觸發(fā)器的開發(fā)
36.2 混編小結(jié)
第37章 規(guī)格模式
37.1 規(guī)格模式的實(shí)現(xiàn)
37.2 最佳實(shí)踐
第38章 MVC框架
38.1 MVC框架的實(shí)現(xiàn)
38.1.1 MVC的系統(tǒng)架構(gòu)
38.1.2 模型管理器
38.1.3 值棧
38.1.4 視圖管理器
38.1.5 工具類
38.2 最佳實(shí)踐
附錄:23個設(shè)計(jì)模式
章節(jié)摘錄
插圖:第一部分大旗不揮,誰敢沖鋒——熱身篇第1章單一職責(zé)原則單一職責(zé)原則的英文名稱是SingleResponsibilityPrinciple,簡稱是SRP。這個設(shè)計(jì)原則備受爭議,只要你想和別人爭執(zhí)、慪氣或者是吵架,這個原則是屢試不爽的。如果你是老大,看到一個接口或類是這樣或那樣設(shè)計(jì)的,你就問一句:“你設(shè)計(jì)的類符合SRP原則嗎?”保準(zhǔn)對方立馬“萎縮”掉,而且還一臉崇拜地看著你,心想:“老大確實(shí)英明”。這個原則存在爭議之處在哪里呢?就是對職責(zé)的定義,什么是類的職責(zé),以及怎么劃分類的職責(zé)。我們先舉個例子來說明什么是單一職責(zé)原則。只要做過項(xiàng)目,肯定要接觸到用戶、機(jī)構(gòu)、角色管理這些模塊,基本上使用的都是RBAC模型(Role-BasedAccessControl,基于角色的訪問控制,通過分配和取消角色來完成用戶權(quán)限的授予和取消,使動作主體(用戶)與資源的行為(權(quán)限)分離),確實(shí)是一個很好的解決辦法。我們這里要講的是用戶管理、修改用戶的信息、增加機(jī)構(gòu)(一個人屬于多個機(jī)構(gòu))、增加角色等,用戶有這么多的信息和行為要維護(hù),我們就把這些寫到一個接口中,都是用戶管理類嘛,我們先來看它的類圖,如圖1.1 所示。
媒體關(guān)注與評論
“禪”是一種境界,是得道者的智慧結(jié)晶。本書在寫作方式上別出心裁,不是將設(shè)計(jì)模式的概念強(qiáng)行灌輸給讀者,而是以淺顯的故事作為襯墊,深入淺出地展示了設(shè)計(jì)模式中蘊(yùn)涵的哲理,進(jìn)而引發(fā)讀者的思考,提升他們的實(shí)際開發(fā)水平。 ——51CTO讀書頻道聰明的人,把房子蓋在磐石上;無知的人,把房子蓋在沙土上。對于開發(fā)者而言,設(shè)計(jì)模式就是那堅(jiān)固的磐石。本書是設(shè)計(jì)模式領(lǐng)域難得一見的佳作,它用一種創(chuàng)新的方式對面向?qū)ο蟮脑O(shè)計(jì)原則和設(shè)計(jì)模式的要義進(jìn)行了全新的闡釋。對于所有Java開發(fā)者而言,無論你是初窺門徑,還是深諳其道,本書都值得你閱讀并收藏。 ——Java開發(fā)者社區(qū)本書不僅從開發(fā)者的角度對設(shè)計(jì)模式進(jìn)行了獨(dú)到而具有創(chuàng)意性的講解,而且還從架構(gòu)師的角度深刻地分析了設(shè)計(jì)模式在軟件架構(gòu)中的重要性。設(shè)計(jì)模式是架構(gòu)師必備的技能之一,它的思想和原則能指導(dǎo)架構(gòu)師設(shè)計(jì)出更優(yōu)秀的軟件架構(gòu)。強(qiáng)烈推薦所有架構(gòu)師閱讀本書?! 軜?gòu)師社區(qū)多年前學(xué)設(shè)計(jì)模式,犯困無數(shù)次,打盹若干回。程序員一直被幽默著,現(xiàn)在終于可以反幽默一回了。這是一本厚積薄發(fā)的書,作者以其豐富的實(shí)踐經(jīng)驗(yàn)和通俗的講解方式,把難懂的設(shè)計(jì)模式“化為”橡皮泥,讓程序員想怎么玩就怎么玩,以致讀完全書,仍覺意猶未盡。 ——江伍開,知名外企資深架構(gòu)師,51CTO博客之星很多初學(xué)者都抱怨設(shè)計(jì)模式的抽象和深奧,對于他們來說,本書的出版不啻是一種福音!作者利用詼諧的語言和生動的敘述方式,結(jié)合當(dāng)前國內(nèi)讀者熟知和易于理解的故事和開發(fā)場景,對設(shè)計(jì)模式進(jìn)行了獨(dú)特而全面的闡述,大大降低了設(shè)計(jì)模式的學(xué)習(xí)曲線,實(shí)在不可多得! ——計(jì)文柯,資深軟件開發(fā)專家和項(xiàng)目經(jīng)理,《Spring技術(shù)內(nèi)幕-深入解析Spring架構(gòu)和設(shè)計(jì)原理》作者本書以設(shè)計(jì)模式為主題,是作者多年軟件開發(fā)經(jīng)驗(yàn)的總結(jié)。它介紹了一些重要的設(shè)計(jì)原則,并對各種經(jīng)典的設(shè)計(jì)模式進(jìn)行了詳細(xì)的分析、比較和綜合。全書通俗易懂、實(shí)例豐富,對想要學(xué)習(xí)設(shè)計(jì)模式的程序員有很大的啟發(fā)和幫助?! 崟?,資深軟件開發(fā)專家和CTO,《冒號課堂》作者無論是在建筑領(lǐng)域,還是在面向?qū)ο筌浖_發(fā)領(lǐng)域,如何強(qiáng)調(diào)設(shè)計(jì)模式的重要性都不過分。如果你覺得設(shè)計(jì)模式難學(xué),推薦你認(rèn)真閱讀這本書,它用大量生動、有趣的故事將設(shè)計(jì)模式的深奧、晦澀化解于無形;如果你對設(shè)計(jì)模式一知半解,或只能“紙上談兵”,建議你反復(fù)閱讀這本書,它對面向?qū)ο蟮脑瓌t、設(shè)計(jì)模式的內(nèi)涵和外延,以及設(shè)計(jì)模式的應(yīng)用場景做了全面而深刻地闡述?! 醺?qiáng),資深軟件開發(fā)專家和架構(gòu)師,《Spring揭秘》作者不管是新手還是大俠,本書絕不容錯過,因?yàn)椴荒苁炀毜剡\(yùn)用設(shè)計(jì)模式,就不能算是一名合格的程序員。它通俗易懂,作者精心挑選和設(shè)計(jì)的故事和案例引人入勝,是初學(xué)者的不二選擇;它系統(tǒng)而全面,但又不乏深度,處處滲透著作者對設(shè)計(jì)模式的“悟”,是合格程序員必備的修煉秘籍?! 毂?,資深軟件開發(fā)專家和架構(gòu)師,《GWT揭秘》作者作者在本書中表現(xiàn)出來的想象力、創(chuàng)造力以及對設(shè)計(jì)模式和軟件架構(gòu)的深刻理解,讓我十分震撼。我喜歡這種通過想象來講解設(shè)計(jì)模式和剖析軟件結(jié)構(gòu)的方式,它一定會讓你也受益匪淺?! 呓?,資深架構(gòu)師和項(xiàng)目經(jīng)理,《軟件開發(fā)之禪》作者
編輯推薦
《設(shè)計(jì)模式之禪》:繼GOF《設(shè)計(jì)模式》之后的又一里程碑之作!6大原則,23+1種設(shè)計(jì)模式設(shè)計(jì)模式PK、設(shè)計(jì)模式混編、設(shè)計(jì)模式最佳實(shí)踐設(shè)計(jì)模式領(lǐng)域的又一里程碑之作同樣是導(dǎo)演,為什么詹姆斯·卡梅隆、史蒂芬·斯皮爾伯格能夠制作出如此讓人驚心動魄的曠世巨著呢?同樣是建筑師,為什么貝聿銘、圣地亞哥·卡拉特拉瓦能夠創(chuàng)造出如此美麗、和諧、雄偉的建筑呢?同樣是程序員或架構(gòu)師,我們的作品又應(yīng)該達(dá)到怎樣的境界?誠然,技術(shù)和創(chuàng)造力我們都不缺,缺少的是為軟件注入靈魂的方式和方法,設(shè)計(jì)模式正是這一系列方式和方法的集大成者。巧妙地應(yīng)用設(shè)計(jì)模式可以讓我們的代碼變得更健壯、更易于理解和維護(hù),從而顯著提高系統(tǒng)的性能、可靠性、穩(wěn)定性、可維護(hù)性和可擴(kuò)展性,是成長為優(yōu)秀程序員和架構(gòu)師的必備技能?!八街梢怨ビ瘛?,《設(shè)計(jì)模式之禪》以親切、自然的風(fēng)格闡述了設(shè)計(jì)模式的核心思想,潛移默化地提升我們面向?qū)ο蟮募軜?gòu)和編程能力,帶我們進(jìn)入“物我合一、見性成佛”的最高設(shè)計(jì)境界。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載