設計模式筆記瞎寫
- 設計模式是幹什麼的?
用設計模式使得程式更加的靈活,容易修改,並且易於複用
- 面向物件的三大特性?
通過封裝、繼承、多型把程式的耦合度降低
讓業務邏輯與介面邏輯分開,讓它們之間的耦合度下降。只有分離開,才容易達到容易維護或擴充套件
面向物件的程式設計,並不是類越多越好,類的劃分是為了封裝,但分類的基礎是抽象,具有相同屬性和功能的物件的抽象集合才是類
需求的變更是必然!所以開發者應該的是考慮如何讓自己的程式更能適應變化,而不是抱怨客戶的無理,客戶不會管程式設計師加班時的汗水,也不相信程式設計師失業時的眼淚
『策略模式』定義了演算法家族,分別封裝起來,讓它們之間可以互相替換, 此模式讓演算法的變化, 不會影響到使用演算法的客戶
封裝變化點是我們面向物件的一種很重要的思維方式
最初的策略模式是有缺點的,客戶端必須知道所有的策略類,並自行決定使用哪一個策略類。這就意味著客戶端必須理解這些演算法的區別,以便適時選擇恰當的演算法類。換言之,策略模式只適用於客戶端知道所有的演算法或行為的情況
依賴注入(Dependency Injection)
面向物件的四個好處:可維護、可擴充套件、可複用和靈活性好
強內聚、鬆耦合
單一職責原則,就是指就一個類而言,應該僅有一個引起它變化的原因
開放—封閉原則是說對擴充套件開放,對修改關閉。通俗的講,就是我們在設計一個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件,換句話說就是,應當可以在不必修改原始碼的情況下改變這個模組的行為。比如記憶體不夠只要插槽多就可以加,比如硬碟不夠了,可以用行動硬碟等,PC的介面是有限的,所以擴充套件有限,軟體系統設計得好,卻可以無限的擴充套件
依賴倒轉原則,原話解釋是抽象不應該依賴細節,細節應該依賴於抽象。
迪米特法則(LoD)’ 也叫最少知識原則,簡單的說,就是如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果其中一個類需要呼叫另一個類的某一個方法的話,可以通過第三者轉發這個呼叫。迪米特法則還是在講如何減少耦合的問題,類之間的耦合越弱,越有利於複用,一個處在弱耦合的類被修改,不會對有關係的類造成波及。也就是說,資訊的隱藏促進了軟體的複用。
門面模式要求一個子系統的外部與其內部的通訊必須通過一個統一的門面(Facade)物件進行。門面模式提供一個高層次的介面,使得子系統更易於使用。
程式分層
所謂的三層開發,就是關於表現層、業務邏輯層和資料訪問層的開發