讓設計模式飛一會兒|①開篇獲獎感言

2020-12-14 酷扯兒

本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫

哈嘍,大家好,我是高冷就是範兒,又和大家見面了。從今天開始我將正式開啟有關設計模式的系列文章的寫作,和大家一同來聊聊設計模式這個老生常談的玩意。關於設計模式的文章,書籍,多如牛毛,隨便百度、Google一下都能給你搜出不計其數關於講解設計模式的文章來。

那為什麼我還要花費如此大的精力和時間,來寫這麼個耳熟能詳的東西呢?

寫作原因

首先,肯定不是因為我對設計模式有多精通。其實我也只是一個正在學習路上的菜鳥,接下去寫作過程中必然也需要查閱一些其它大佬們的資料來完善文章。我之前完整學習過設計模式,也做了一些筆記,所以希望能將學習過的知識做輸出,分享給大家。

關於設計模式的文章確實有很多,但是我發現內容雷同比較多,甚至連內容的結構也比較統一單調,連文章的風格也都相去不遠。設計模式屬於技術體系中比較理論的內容,比較枯燥,要是再套用書本上那種正式嚴肅的風格去寫,會比較痛苦。

另外,有些文章篇幅相當長,裡面各種圖啊,代碼啊貼的也不少,寫得很是詳細,當然初衷肯定是好的,希望能夠幫助大家更好去理解。但是看著比較痛苦。好幾次當我很痛苦地讀完之後,發現還是沒有把東西講清楚,也不知道有什麼用,還得去查閱其他資料。當我最後弄明白是咋回事後再回頭看,發現這個玩意也並不是很複雜啊?為什麼會講得如此之複雜……

學習設計模式從忘記設計模式開始。

基於這些問題,所以我決定還是應該炒炒冷飯(冷飯這名字還挺適合我~)寫點設計模式的文章,我希望這次寫作可以儘量拋棄書本上的教條框架,忘記自己曾經學習過設計模式,重新歸零,從心出發,用自己比較通俗直白的方式,但又不失深度的將知識呈現給大家。

結合生活場景和框架源碼。

同時,在後續的文章中,我也會儘量用生活中熟悉場景作為例子解釋。當你真的學完每一個設計模式,並有過一些思考,會發現設計模式不再枯燥乏味,生活處處都會有它的身影。

另外,在技術領域,設計模式大量存在於各類主流開源框架中,其中以Spring,Mybatis等為典型代表,設計模式在其中被運用的爐火純青。後續我也會挑選一些自己了解過的源碼結合著聊。當你看懂其中的運用,你會不由讚嘆設計者構思之精巧。

總體來講,我希望我的文章不會是循規蹈矩,嚴肅死板的,以一種比較輕鬆、隨意的風格進行的。文章的篇幅儘量簡短精煉,能用一句話講清楚絕不贅述。而且設計模式中,其實常用的模式就那麼幾種,所以我寫的過程會有主次之分,重要我會詳解,簡單的或者幾乎不用的模式我就一帶而過了。當然如果大家有啥好的建議也可以告訴我。

今天是開篇導言,不涉及具體的模式的內容講解,但是開宗明義,我還是想簡單講一下設計模式相關的概念。

是什麼

設計模式到底是什麼?

在這裡我就不把設計模式的概念複製一遍了,我寫著累,你們看著也累,而且前面說了,這個系列文章我儘量想用比較輕鬆、隨意的風格寫。總結起來就一句話,設計模式就是一些過去技術的大師們總結出來的一系列寫代碼的套路

大佬們經過實踐總結又將其這些套路分為三類,創建型、結構性、行為型

顧名思義,創建型模式,是為了創建對象使用的,至於為什麼創建個對象(直接new一個不就完事了嗎)還需要如此多不同的套路,後續你就知道,這邊不贅述。結構性模式,是用來組織不同的小對象,從而變成更大更複雜結構的對象。行為型模式,是用來控制協調不同的對象的運行流程,因為實際開發場景下,不可能是孤零零一個對象在運行,會涉及多個對象交互,這中間的協調工作就會使用到行為型模式。

每一類型的模式都包含多個具體模式,如下圖。後續每篇文章都會對其中一個模式做詳解剖析,這邊就不再贅述。

為什麼

這些套路到底好在哪裡?

很多人學設計模式覺得很難,很重要原因是,不知道這個模式到底好在哪裡?解決了什麼痛點?我能用它來幹啥?所以只能生搬硬套。其實模仿也是無可厚非的,進步就是從模仿優秀者開始的。但是如果想要能駕馭一門知識,還是需要了解其本質的。

所以這邊需要提一下一個跟設計模式緊密相關的概念——面向對象的七大設計原則。其實,如何評判一個設計模式好壞,就是用這七個原則來衡量的。這些原則有開閉原則、裡氏替換原則、依賴倒置原則、單一職責原則、接口隔離原則、迪米特法則、組合聚合復用原則。還是比較抽象的,但是我這邊就不展開了,大家也沒必要去死記硬背這些原則,沒意義。後續在講到每個設計模式的優缺點時候,我會穿插提到這些設計原則,到時再做詳解。

設計模式一定需要用嗎?

這邊先潑個冷水,這個設計模式系列你看完,你還真不一定能立刻用上,甚至有的時候你用了還是畫蛇添足,會給應用帶來一些不必要的問題和麻煩。尷尬……設計模式對不同層級的程序(應用層級、類庫層級、框架層級)重要性不一樣。設計模式更多可能會用在一些類庫和框架的設計,或者對老項目重構,在業務邏輯開發中使用的比較少,甚至會引入不必要的複雜度。

當用則用,不合適,或者感覺沒把握,千萬不要強上!當你的開發受到阻礙,亟需一條出路,哎,這個時候設計模式可以登場了……

那這是為什麼呢?

因為像類庫框架這類產品,會被不同的人大量重複使用,所以對其重用性、擴展性、靈活性有很高的要求。而對於普通的業務邏輯開發,這方面要求較低。

相關焦點

  • 《讓子彈飛》:讓子彈多飛一會兒,不朽的經典總是耐人尋味!
    這部電影就是姜文指導的《讓子彈飛》。姜文扮演的張麻子張麻子的一句話:「讓子彈飛一會兒」拉開了整個電影的序幕。並且《讓子彈飛》也是一部全程毫無尿點的電影,這部電影雖然很精單,但是有許多觀眾看完之後分紛紛表示看不懂。並且這部電影的設計上如果是錯過了任何一個鏡頭,那就無法了解到整部電影想要表達的含義,就算沒有漏掉任何一個鏡頭,那也同樣有些看不明白。
  • 關於「奧斯卡獲獎感言」的8個趣事
    今年的奧斯卡提名者有200多人,最終獲獎的那部分人將發表獲獎感言,電視觀眾們通常對這些演講還挺期待的。在過去歷屆奧斯卡頒獎禮上,當獲獎者手握著名的小金人時,都發生過哪些有趣的故事?本文為您總結了以下真相。1. The oldest person to give an acceptance speech. Christopher Plummer.
  • 金鷹獎獲獎感言,王一博簡單,趙麗穎勵志
    10月18日,兩年一度的金鷹獎獲獎名單出爐,這次最受人矚目的就是金鷹女神讓宋茜獲得,此外,王一博獲得了最受觀眾喜歡的男演員獎項; 而趙麗穎則獲得了最受觀眾喜歡的男演員獎項。獲獎後,王一博和趙麗穎紛紛發文,並且曬出獎盃,與網友一同分享獲獎的快樂。
  • 「原創」讓設計模式飛一會兒|④原型模式
    今天我們繼續設計模式的探索之路。前幾篇的內容有小夥伴還沒有閱讀過的,可以閱讀一下。今天我們接下來要聊的是原型模式。何為原型?維基百科上給出的概念:原型是首創的模型,代表同一類型的人物、物件、或觀念。為什麼需要原型模式?我還是堅持前面幾篇一貫的風格,在深入了解該模式之前,先來思考一下,這個模式它出現的原因以及存在的意義是什麼?首先,這個模式也是屬於創建型模式,也是用來創建對象。
  • 迪麗熱巴英文獲獎感言
    [cp]#迪麗熱巴英文獲獎感言# 恭喜熱巴@Dear-迪麗熱巴 獲得2020 亞洲內容獎之最佳新星!(Asia Contents Awards-Best Rising Star) 獲獎感言翻譯: 大家好,我是迪麗熱巴。
  • 「原創」讓設計模式飛一會兒|⑥面試必問代理模式
    今天我們繼續來聊設計模式這個話題。前面已經講過幾個模式,如果沒有閱讀過的朋友可以回顧一下。今天我要跟大家聊的是代理模式。相信只要是對GOF23設計模式有簡單了解過的,或者看過我github上面以前學習時記的筆記,或多或少是聽說過代理模式的。
  • iG奪冠後,他們獲獎感言用的模板可以公開了!(適用多種場合)
    在頒獎典禮上,來自韓國的外援rookie用雙語(韓語和漢語)發表了獲獎感言。rookie獲獎感言視頻稿子君之前在張譯、丁柳元獲獎的那兩篇稿子裡就講過,獲獎感言大多都要講一堆感謝的話,關鍵是看怎樣把感謝的話講好、講出味道、講得讓人感動。(詳情請看:1.昨晚,張譯獲獎感言裡的那些「謝謝」,「謝」得有水平!2.飾演龔全珍的那個丁柳元獲獎了!2分鐘感言盡顯底蘊和才華!)
  • 獲獎感言,杜布拉夫卡在昨天被評為2019/20賽...
    懂球帝首頁>足球新聞> 獲獎感言,杜布拉夫卡在昨天被評為2019/20賽... 獲獎感言,杜布拉夫卡在昨天被評為2019/20賽... 紐卡斯爾聯足球俱樂部 07-27 15:08 獲獎感言,杜布拉夫卡在昨天被評為2019/20賽季紐卡斯爾聯年度最佳球員。「這是一個巨大的榮耀。因為我知道這個獎項的歷史和此前獲得這個獎項的那些為這家龐大俱樂部效力的優秀球員是什麼樣的。所以我非常高興。」
  • 導演發正版歌詞,肖戰獲獎感言4字心疼
    楔子近日,《餘生請多指教》的導演發布了正版的歌詞,也就是肖戰、楊紫在《星光大賞》的舞臺上演唱的那三首歌的歌詞,但是,在我看來,這還不是最讓我感懷的,因為最動情處莫過於在舞臺最後肖戰的獲獎感言,尤其是其中的4個字分外心疼,並讓無數粉絲心緒悵然,猶如一個氣球被一根針忽然挑破了,那是一種難過之中的不安
  • 迪麗熱巴英文獲獎感言,網友熱議:Best Rising Star. 大明星永不...
    虎撲10月25日訊 10月25日,恭喜迪麗熱巴獲得2020亞洲內容獎之最佳新星,用英文發表獲獎感言。新聞發出後引發網友熱議,具體內容如下:詳細視頻戳我>>>#迪麗熱巴英文獲獎感言#恭喜熱巴@Dear-迪麗熱巴 獲得2020 亞洲內容獎之最佳新星!
  • 優秀了我們的運動員,全英文獲獎感言
    優秀了我們的運動員,全英文獲獎感言 2017-12-03 16:23  熱愛體育的雙子座
  • 冬奧會王濛無愧最佳女主角 周洋創最佳獲獎感言
    最佳男主角:空缺  獲獎理由:本屆冬奧會終無令人眼前一亮之震撼級男星湧現,為保證獎項質量,故宣布空缺。  最佳短片:《一夜風流》  主演:斯科特·拉戈  獲獎理由:溫哥華冬奧會男子滑雪板U型池銅牌獲得者——美國運動員斯科特·拉戈「捨身出演」的本部短劇,向人們詮釋了何謂「樂極生悲」。
  • 爆笑全場的獲獎感言,皮特的梗你get到了嗎?
    充滿「皮特式」幽默的獲獎感言,引全場爆笑。And the BAFTA is awarded to Brad Pitt for Once Upon a Time in Hollywood.獲得英國電影學院獎最佳男配角的是布拉德·皮特,《好萊塢往事》。
  • 2018收穫文學排行榜頒獎詞及作家獲獎感言
    2018收穫文學排行榜於12月9日在安徽蚌埠頒出,長篇非虛構、長篇小說、中篇小說、短篇小說四個分類榜單揭曉,以下為各榜單前三名頒獎詞和作家獲獎感言。
  • After School的NANA在演技大賞上獲獎感言時間過長,被罵這麼慘?
    12月31日,演員NANA(林珍娜)在2020KBS演技大賞上憑藉電視劇《出師表》獲得了迷你電視劇部門女子優秀獎,共同獲獎的還有演員趙汝珍。本身演技獲得認可是件可喜可賀的事,但卻因為獲獎感言時間過長引發了不小的爭議。
  • 這波獲獎感言,走心了!
    江蘇集萃蘇科思科技有限公司執行長 漢斯·杜伊斯特(Hans Duisters) 我致力於將荷蘭獨特的高科技研發模式引入中國 此外,獲得「相城之友」稱號的小夥伴 也發出了獲獎感言
  • 布拉德·皮特在首獲奧斯卡最佳男配角的獲獎感言中提到他的孩子們
    #第92屆奧斯卡金像獎#打破慣例,布拉德·皮特在首獲奧斯卡最佳男配角的獲獎感言中提到了他的孩子們在他發布個人獲獎感言的時候,布拉德·皮特提到了他的孩子,要知道他在金球獎的獲獎感言中沒有提到他們。眾所周知,2019年是布拉德·皮特大豐收的一年,我們看到他和詹妮弗·安妮斯頓在美國演員工會獎後臺重聚了,而且兩個人再度擁抱牽手,這讓他上了娛樂頭條。
  • 別急 讓子彈飛一會兒
    「別急,讓子彈飛一會兒。」  《讓子彈飛》裡,張麻子淡定地說完這句話後不久,白馬掙脫韁繩,四散跑開。此時,張牧之才一聲口哨響起,帶領麻匪兄弟們衝向正唱著歌兒,吃著火鍋的馬邦德。  2019年底,各大評級機構開始倡導長期評價,樹立長期投資理念,將更多的權重傾向於長期業績表現良好的產品。
  • 《最後生還者2》總監獲獎感言:會繼續傾注愛做遊戲
    2020年的英國金搖杆獎的評選結果今天(11月25日)正式出爐,《最後生還者2》收穫了年度遊戲、最佳視覺設計和最佳敘事等多項大獎,是這一屆金搖杆獎的最大贏家。該作的總監尼爾·德魯克曼 (Neil Druckmann)在推特上發表了自己獲獎感言。
  • 王霜獲獎背後:前一晚才準備英文感言 另外兩候選人未到場
    所以,在此之前,外界並不看好王霜最終獲獎,就連她本人也沒想到。據《足球》報的記者陳清揚介紹:王霜原本是抱著「見見大場面」的心態,她沒有準備獲獎感言,就連出席頒獎典禮的正裝,也是巴黎聖日耳曼俱樂部統一發的西裝。抵達下榻的酒店,王霜就跑到健身房,跑了一個小時。當晚,王霜又按計劃,泡在了健身房。