設計模式之初識oop宇宙世界

2021-09-26 08:08:40 字數 2542 閱讀 4085

最近小語在學習設計模式,每天沉浸在設計模式的世界裡面不可自拔,平常工作寫**也是時刻想著如何套用設計模式,同事們都笑稱小語是著了魔了。

這天晚上小語下班吃完飯,躺在床上,又捧著講解設計模式的書(head first 設計模式、設計模式之禪、android設計模式與原始碼分析)開始看了起來,然後看著看著,就睡著了。小語做了乙個夢。

在夢中,小語來到了乙個奇妙的世界……

小語茫然的看著這個天邊有三道圓環,地面上到處流溢位六色霞光的地方,雖然很漂亮,但是對於陌生的地方,心中難免有些忐忑。

這時只聽乙個憨厚的聲音響起:小語,你好啊!小語猛然一驚,在這個世界怎麼會有人知道我的名字?

此時,小語身旁不知何時多出乙個人來,這是乙個身材有點圓滾滾的但是長相卻怎麼也看不清楚的人,他的臉上好像有一層迷霧,時刻變化著,但是卻能看出他有一雙明亮的眼睛。

小語看到這個人心中一緊,不免有些警惕的問:你是誰?怎麼會知道我的名字?

神秘人看到小語的樣子,不免笑了,微笑著說道:你可能還沒有認出我,但是我卻認識你啊!來!跟我來!我給你介紹一下這個世界。

小語聞言,雖然不想跟他走,但是他對這個世界一無所知,也不知道該怎麼辦?心想,也許跟著他能有辦法離開這個世界,回去地球呢?而且看著他也不像壞人。於是小魚就跟著神秘人向著遠方走去。

神秘人邊走邊向著小語介紹著這個世界,原來這個世界叫做oop宇宙。

據說是由封裝、繼承、多型三位創世神所創造,他們創造這個世界之後,為了穩定這片世界不讓它解體,便讓自己的身體融入了這片世界,所以說封裝、繼承、多型是構成這片世界的基石,沒有他們就沒有現在的一切。

三大創世神創造這個世界之後,慢慢的出現了生靈,形成了勢力,也就是現在的五大宗一聖地,23家族了。五大宗一聖地:單一宗、黎克特制宗、隔離宗、依賴宗、迪公尺特宗和開閉聖地。

23家族:23家族分為

建立型家族,共五個:工廠方法家族、抽象工廠家族、單例家族、建造者家族、原型家族。

結構型家族,有七個:介面卡家族、裝飾器家族、**家族、外觀家族、橋接家族、組合家族、享元家族。

行為型家族,共十乙個:策略家族、模板方法家族、觀察者家族、迭代子家族、責任鏈家族、命令家族、備忘錄家族、狀態家族、訪問者家族、中介者家族、直譯器家族。

先說說這五大宗一聖地,由於這片世界處處存在著三大創世神的規則,根據這些規則人們總結出了六**則,而五大宗一聖地分別對應其中一種法則。

先分別簡單介紹一下:

單一宗,顧名思義就是對應單一職責法則 。

單一職責原則(srp:single responsibility principle)又稱單一功能原則。它規定乙個類應該只有乙個引起發生變化的原因。

為了方便說明,咱們以後就把法則的英文名字第乙個字母稱呼宗門名字吧,所以單一宗可以叫做s宗。

黎克特制宗,對應的就是黎克特制替換法則 。

黎克特制替換原則(liskov substitution principle lsp)物件導向設計的基本原則之一。黎克特制替換原則中說,任何基類可以出現的地方,子類一定可以出現,以後就可以叫黎克特制宗為l宗

隔離宗,對應的就是介面隔離法則 。

介面隔離原則(inte***ce segregation principle, isp),客戶端不應該依賴它不需要的介面,類間的依賴關係應該建立在最小的介面上,所以隔離宗也可以叫做i宗

依賴宗,對應的就是依賴倒置法則 。

依賴倒置原則(dependence inversion principle)是程式要依賴於抽象介面,不要依賴於具體實現。簡單的說就是要求對抽象進行程式設計,不要對實現進行程式設計,這樣就降低了客戶與實現模組間的耦合 依賴宗也可以稱做d宗

迪公尺宗,對應的就是迪公尺特法則。

迪公尺特原則(law of demeter)又叫作最少知識原則(least knowledge principle 簡寫lkp)簡單來說,類應該只跟它的直接朋友通訊 迪公尺宗也可以叫做l宗,重名了呢?先不著急這是為了後面方便記憶。

最後乙個就是一聖地了,說到這裡神秘人不免有些得意。聖地對應的就是開閉法則了 。

開閉原則規定「軟體中的物件(類,模組,函式等等)應該對於擴充套件是開放的,但是對於修改是封閉的」,這意味著乙個實體是允許在不改變它的源**的前提下變更它的行為。一聖地也可以叫做o(open close)聖地。

那麼五大宗一聖地,他們的法則合起來,首字母排序就可以叫做 solid l 法則,分別對應 單一職責、開閉、黎克特制替換、介面隔離、依賴倒置、迪公尺特六**則。

嗯…開閉法則也沒有什麼了不起嘛!聽起來還沒有其他五宗的法則厲害呢!小語說道。為什麼她就能成為聖地呢?

神秘人聽到小語這麼說,就得意的笑笑,說道:這個你以後會知道的,嘿嘿!

小語又問道:這個世界這麼多勢力,難道不會有紛爭麼?

神秘人聽聞,憨厚的笑了笑然後說道,本來想以後告訴你,不過可以透漏一點訊息給你,可以說各大勢力是沒有紛爭的。

為什麼呢?那是因為他們有共同的敵人啊!

合則兩利,大家對付外來的敵人就夠忙了,哪有時間暗地裡鬥爭呢?

what?

你問敵人是誰?

神秘人一臉嚴肅的說道:是乙個叫做change的傢伙啊!

程式設計師內功修煉手冊 不定期分享程式設計師基礎知識,大前端知識!想跟博主一塊成長的快快關注吧!

設計模式之初識

前言 隨著我們隊面對物件的進一步了解,開始了設計模式的學習。學習設計模式我們需要帶著設計模式是什麼,我們為什麼要學習設計模式,它們有什麼好處,帶著這些問題學習可以幫助我們更好地理解和應用。建立型模式 單例模式 工廠方法模式 抽象工廠模式 建造者模式 原型模式 結構型模式 介面卡模式 橋接模式 裝飾模...

DRF之初識介面設計

簡述drf django restframework 就是乙個django中使用 rest 介面規範的模組。什麼rest介面規範?就是對於我們書寫前後端分離時,定義介面的一種規範,列舉如下規範 請求方式 url 設計 介面 請求內容 響應內容 get127.0.0.1 8000 books 獲取所有...

設計模式之初理解

簡單的說,它是乙個 設計經驗的乙個總結 一種套路 經過反覆的使用,被多數人知曉,不斷的分類而衍生出來。是為人們解決某類重複出現問題的一套成功或有效的解決方案。每個模式都描述了我們在程式設計過程中出現的各種問題,使用設計模式,可以增加 的可重用性 讓 更容易的被他人理解 保證 的可靠性。設計模式使得程...