- 重學(xué)Java設(shè)計(jì)模式
- 付政委(小付哥)
- 1483字
- 2021-05-19 18:09:47
前言
設(shè)計(jì)模式的概念最早是由克里斯托弗·亞歷山大在其所著的《建筑模式語(yǔ)言》中提出的。該書(shū)介紹了城市設(shè)計(jì)的“語(yǔ)言”,提供了253個(gè)描述城鎮(zhèn)、鄰里、住宅、花園、房間及西部構(gòu)造的模式,而此類“語(yǔ)言”的基本單元就是模式。后來(lái),埃里克·伽瑪、約翰·威利斯迪斯、拉爾夫·約翰遜和理查德·赫爾姆四位作者接受了設(shè)計(jì)模式的概念。1994年,他們出版了《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》一書(shū),將設(shè)計(jì)模式的概念應(yīng)用到程序開(kāi)發(fā)領(lǐng)域中。
可以看出,設(shè)計(jì)模式本身是一種通用場(chǎng)景的解決標(biāo)準(zhǔn)和方案,而不是實(shí)際場(chǎng)景開(kāi)發(fā)落地的指導(dǎo)手冊(cè)。這種通用的解決標(biāo)準(zhǔn)和方案是研發(fā)人員在大量的項(xiàng)目中驗(yàn)證和提煉的結(jié)果,如果只是學(xué)習(xí)理論知識(shí),沒(méi)有經(jīng)歷過(guò)大型的項(xiàng)目開(kāi)發(fā),則很難理解和使用設(shè)計(jì)模式。
為什么寫(xiě)作本書(shū)
很多研發(fā)人員了解過(guò)設(shè)計(jì)模式,但在實(shí)際的業(yè)務(wù)開(kāi)發(fā)中卻很少使用。甚至使用了大量的if…else實(shí)現(xiàn)業(yè)務(wù)流程,對(duì)于一次次的需求迭代和邏輯補(bǔ)充,靠東拼西湊疲于應(yīng)付。如何掌握和使用設(shè)計(jì)模式的思想和架構(gòu)思維,并行之有效地運(yùn)用到業(yè)務(wù)場(chǎng)景中,具有現(xiàn)實(shí)意義。為了讓更多的研發(fā)人員不僅能掌握設(shè)計(jì)模式的概念,而且可以將設(shè)計(jì)模式運(yùn)用到實(shí)際開(kāi)發(fā)中,特撰寫(xiě)此書(shū)。
本書(shū)主要內(nèi)容
本書(shū)通過(guò)從互聯(lián)網(wǎng)實(shí)際的業(yè)務(wù)開(kāi)發(fā)中遴選出大量的真實(shí)案例場(chǎng)景,包括交易、營(yíng)銷、秒殺等,并結(jié)合規(guī)則引擎、中間件、框架源碼和 RPC 設(shè)計(jì)等技術(shù)點(diǎn)介紹設(shè)計(jì)模式,幫助開(kāi)發(fā)人員在實(shí)際的業(yè)務(wù)中靈活運(yùn)用設(shè)計(jì)模式。
本書(shū)共28章,主要內(nèi)容如下:
·第1~3章,介紹設(shè)計(jì)模式的原則及落地方法,讓讀者在學(xué)習(xí)之前對(duì)設(shè)計(jì)模式有整體的認(rèn)識(shí)。
·第4~25 章,分別通過(guò)場(chǎng)景案例講解設(shè)計(jì)模式的使用方法,包括多種獎(jiǎng)品服務(wù)工廠、在線試卷題目混排、MQ消息體字段適配、多支付渠道場(chǎng)景橋接、差異化規(guī)則引擎組合、ORM中間件設(shè)計(jì)等。
·第26~28章,擴(kuò)展知識(shí),介紹領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)四層架構(gòu)、RPC中間件設(shè)計(jì)開(kāi)發(fā)和分布式領(lǐng)域驅(qū)動(dòng)架構(gòu)設(shè)計(jì),幫助讀者對(duì)設(shè)計(jì)模式和架構(gòu)設(shè)計(jì)有整體的認(rèn)識(shí)。
如何閱讀本書(shū)
本書(shū)是一本偏動(dòng)手實(shí)戰(zhàn)的技術(shù)圖書(shū),主要介紹設(shè)計(jì)模式解決方案的具體落地方法。本書(shū)的每一章都會(huì)重點(diǎn)突出與該章主題相關(guān)的設(shè)計(jì)模式。同時(shí),由于每一種設(shè)計(jì)模式都不是孤立存在的,需要結(jié)合使用,所以應(yīng)在具體的項(xiàng)目場(chǎng)景中靈活運(yùn)用。在閱讀的過(guò)程中,讀者不僅要仔細(xì)閱讀每一章的文字及案例場(chǎng)景設(shè)計(jì),同時(shí)更要多閱讀代碼,或者自己編寫(xiě)代碼。
代碼運(yùn)行環(huán)境
·JDK v1.8及以上。
·Maven v3.0及以上。
·IDEA版本:IntelliJ IDEA 2018、2019、2020。
·其他版本:Spring、SpringBoot、MyBatis等已經(jīng)配置到POM文件中。
源碼使用方法
本書(shū)配套源碼的 GitHub地址為 https://github.com/fuzhengwei/CodeDesign。此源碼會(huì)不斷接受反饋并更新。Gitee地址為https://gitee.com/fustack/CodeDesign。
·每一章涉及的代碼工程結(jié)構(gòu)與源碼部分都有相應(yīng)的名稱。例如,cn-bustack-design-7-01,7-01表示第7章第1個(gè)案例的源碼。
·源碼中的標(biāo)號(hào)的第一個(gè)數(shù)字代表章節(jié)。例如,4.0-0、4.0-1、4.0-2表示第4章的多個(gè)源碼,在構(gòu)建過(guò)程中需要注意,它們之間會(huì)有引用關(guān)系。
·第28章因?yàn)樯婕暗墓こ虄?nèi)容是獨(dú)立的,所以單獨(dú)提供了一個(gè)壓縮包,需要解壓縮后再使用IDEA打開(kāi)。
致謝
首先要特別感謝我的父母(付井海、徐文杰)、妻子(郭維清),是你們?cè)谄匠5纳钪蟹謸?dān)了更多,才讓我有更多的時(shí)間投入文字創(chuàng)作中,使得這本書(shū)與廣大讀者見(jiàn)面。
在電子工業(yè)出版社博文視點(diǎn)的宋亞?wèn)|編輯的熱情推動(dòng)下,促成了我與電子工業(yè)出版社的合作。感謝電子工業(yè)出版社博文視點(diǎn)對(duì)本書(shū)的重視,以及為本書(shū)出版所做的一切。
由于作者水平有限,書(shū)中不足之處在所難免,敬請(qǐng)專家和讀者給予批評(píng)指正。
付政委(小傅哥)
讀者服務(wù)

微信掃碼回復(fù):40938
獲取本書(shū)配套源碼資源。
·獲取各種共享文檔、線上直播、技術(shù)分享等免費(fèi)資源。
·加入本書(shū)讀者交流群,與更多讀者互動(dòng)。
·獲取博文視點(diǎn)學(xué)院在線課程、電子書(shū)20元代金券。
- Advanced Machine Learning with Python
- JavaScript全程指南
- 騰訊iOS測(cè)試實(shí)踐
- 編寫(xiě)高質(zhì)量代碼:改善Python程序的91個(gè)建議
- INSTANT Weka How-to
- Neo4j Essentials
- Swift 3 New Features
- 零基礎(chǔ)輕松學(xué)SQL Server 2016
- QGIS By Example
- Java Web程序設(shè)計(jì)任務(wù)教程
- Getting Started with LLVM Core Libraries
- C#實(shí)踐教程(第2版)
- C語(yǔ)言程序設(shè)計(jì)
- Apache Camel Developer's Cookbook
- Scala Functional Programming Patterns