人的憤怒往往來自自己的無可奈何。 ——王小波今天又是頹廢的一天,也不知道拿什麼來水日更,突然刷知乎的時候看到了力扣的一篇講設計模式的回答,有些內容對我比較有啟發,就以此為基礎,搞一下今天的日更吧。先附上知乎:力扣的回答。
那篇回答太長,我已經沒有精力全部認真讀完,所以就把給我留下印象的部分記錄下來。
物件導向的特點是可維護、可復用、可擴充套件、靈活性好,它真正強大的地方在於:隨著業務變得越來越複雜,物件導向依然能夠使得程式結構良好,而面向過程卻會導致程式越來越臃腫。雖然以我淺薄的資歷,尚無法體會到物件導向程式設計的妙處,但隨著需求變複雜,面向過程的程式越來越臃腫倒是深有體會。所以也正是坊間的熱捧讓我覺得無論如何都需要深入學習設計模式。讓物件導向保持結構良好的秘訣就是設計模式。
設計模式基於六大原則,之前我可能單獨聽說過其中的乙個或幾個,但印象中這可能是第一次看到這六個原則同框:
設計模式基於六大原則:設計模式共包含23個常用模式,分為建立型模式、結構型模式和行為型模式三類。single responsibility principle:單一職責原則:乙個類只做一件事,乙個類應該只有乙個引起它修改的原因。
open closed principle:開閉原則:乙個軟體實體如類、模組和函式應該對修改封閉,對擴充套件開放。
liskov substitution principle:黎克特制替換原則:子類應該可以完全替換父類。也就是說在使用繼承時,只擴充套件新功能,而不要破壞父類原有的功能。
law of demeter:迪公尺特法則:又名**「最少知道原則」**,乙個類不應知道自己操作的類的細節,換言之,只和朋友談話,不和朋友的朋友談話。
inte***ce segregation principle:介面隔離原則:客戶端不應依賴它不需要的介面。如果乙個介面在實現時,部分方法由於冗餘被客戶端空實現,則應該將介面拆分,讓實現類只需依賴自己需要的介面方法。
dependence inversion principle:依賴倒置原則:細節應該依賴於抽象,抽象不應依賴於細節。把抽象層放在程式設計的高層,並保持穩定,程式的細節變化由低層的實現層來完成。
建立型模式包含五種,分別是:工廠方法模式、抽象工廠模式、單例模式、建造型模式、原型模式
結構型模式包含七種,分別是:介面卡、橋接、組合、裝飾器、外觀、享元、**
建立型模式包含十一種,分別是:責任鏈、命令、直譯器、迭代器、中介、備忘錄、觀察者、狀態、策略、模板方法、訪問者
拋磚引玉 ERP
看了這個故事,估計你對erp enterprise resourses planning 企業資源計畫 有個大致的了解。妻子 當然可以,來幾個人,幾點來,想吃什麼菜?丈夫 6個人,我們7點左右回來,準備些酒 烤鴨 番茄炒蛋 冷盤 蛋花湯 你看可以嗎?商務溝通 妻子 沒問題,我會準備好的。訂單確認 妻...
接 拋磚引玉
接上次,考慮到轉datatable實際效能問題,我把本地linq複雜物件不轉成datatable,僅去掉中間的複雜物件.這樣list就可以在webservice中傳遞了.同樣拋磚引玉 1public static list tentity togenerallist tentity this ili...
設計模式 設計模式
物件導向程式設計 oop 的基本概念有 封裝,抽象,繼承,多型等,如何開發出可復用的物件導向軟體一直困擾著軟體開發人員。可復用的物件導向技術包括類的繼承,物件的組合和引數化型別 generic gof的巨著 設計模式 總結出可復用的物件導向的23個設計模式,並且歸類成 建立型模式,結構型模式和行為型...