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

2021-09-27 08:57:35 字數 1955 閱讀 3172

從今天開始記錄設計模式相關知識。在後續的文章中,我會盡量用生活中熟悉場景作為例子解釋。當你真的學完每乙個設計模式,並有過一些思考,會發現設計模式不再枯燥乏味,生活處處都會有它的身影。

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

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

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

❓設計模式到底是什麼?

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

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

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

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

❓這些套路到底好在**?

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

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

❓設計模式一定需要用嗎?

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

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

❓那這是為什麼呢?

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

❓怎麼辦?

一行小字…

我還沒用過lambda,有人這樣說…

先看設計模式 然後學lambda 然後告訴你 很多設計模式可以用lambda解決

讓 echo 飛一會兒顏色

echo 命令是 linux 終端輸出文字最簡單的命令了,但也因為簡單它不太適合作為格式化文字的輸出。選項含義 n輸出文字的時候不產生新行 預設不用 e在帶有單引號 或雙引號 的字串中將使用轉義字元 e在帶有單引號 或雙引號 的字串中將禁用轉義字元 help version在 man 文件中表示分別...

善用return this,讓物件鏈飛一會兒

class person public function say public function see public function sleep person1 new person dido women 32 person1 say person2 new person eminem male...

Ubutun磁碟突然爆滿,刪去檔案一會兒又爆滿

某日照常開啟虛擬機器的ubutun 16.04準備工作,但是卻沒有像往常一樣開啟桌面,而是進入了tty終端,並且讓輸入密碼,輸入startx想進入桌面,還是沒進去,仔細檢視說明,提示沒有空間,於是果斷在tty終端刪除了乙個5g的備份檔案,重新reboot終於進入了夢寐以求的桌面。可是好景不長,沒過十...