oop基礎。
oop有三大目標,重用性、靈活性和擴充套件性。
oop有三大特性,封裝、繼承和多型。抽象雖然不是
oop的程式設計特性,但它卻是所有程式語言的最大特性。
封裝,隱藏程式的屬性和的實現細節,並控制屬性的訪問許可權,對外僅提供介面。
繼承,是對基類的**進行利用並擴充套件基類,是乙個從一般到特殊的過程。
多型,執行時,根據物件的不同,同一介面,但是呼叫不同的實現方式來達到多型的特性。
抽象,將需要變化之處與不需要變化之處區分開來。抽象出來的類,不僅僅可能是乙個事物,也可以是一組行為,凡是關聯性比較強的都可以抽象為乙個基類。
oop六大原則。
開閉原則,開放擴充套件,關閉修改。
依賴倒置原則,高層和底層模組都依賴於抽象,也即面向介面程式設計。
介面隔離原則,介面功能要單一,多個任務提供多個介面。合成/
聚合利用原則,能夠用合成
/聚合的,就不要用繼承。
迪公尺特法則,也稱最小知道原則,盡可能少的與其他類有耦合關係,有的時候可以用前向宣告。
單一職責原則,乙個類只有乙個引起它變化的原因,如乙個「清潔」類,別吃飯時也引起「清潔」類響應。
黎克特制替換原則,子類不覆蓋父類方法,做到子類物件完全可以替換父類物件。
常用設計模式。
簡單工廠模式,有乙個提供介面的抽象類,然後實現不同功能的子類去實現抽象類,最後乙個簡單工廠類來完成對不同子類的建立。建立型模式。
工廠方法模式,定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。定義乙個抽象工廠類,每乙個產品,按照抽象工廠的基本要求新建乙個工廠來生產新的產品。
建立型模式。
單例模式,保證乙個類只有乙個例項,並提供乙個全域性訪問點。
建立型模式。
裝飾者模式,動態地給乙個物件新增一些職責。就擴充套件功能而言,裝飾者模式比繼承更加靈活。
結構型模式。
**模式,為其他物件提供一種**以控制對這個物件的訪問。
結構型模式。
介面卡模式,將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡模式讓原本由於介面不相容而不能一起工作的類可以一起工作。
結構型模式。
組合模式,將物件組合成樹形結構以表示「部分—整體」的層次結構。組合模式能夠讓客戶以一致的方式處理個別物件以及物件組合。
結構型模式。
命令模式,將乙個請求封裝成乙個物件,從而可以用不同的請求、佇列或者日誌對客戶進行引數化。命令模式也支援可撤銷的操作。
物件行為型模式。
模板方法模式,定義乙個操作中的演算法骨架,而將一些步驟延遲到子類中。模板方法可以不改變改變乙個演算法的結構即可以重定義該演算法的某些特定步驟。
類行為型模式。
迭代器模式,提供一種方法順序訪問乙個聚合物件中的各個元素,而又不暴露其內部的表示。
物件行為型
模式。狀態模式,允許物件在內部狀態改變時改變它的行為,物件看起來似乎修改了它的類。
物件行為型模式。
策略模式,定義一系列演算法,分別封裝起來,讓它們可以互相替換。此模式讓演算法的變化可以獨立於使用演算法的客戶。
物件行為型模式。
觀察者模式,定義了物件之間一對多的依賴關係,當乙個物件發生改變時,它的所有依賴者都會收到通知並自動更新。
物件行為型模式。
p.s.
模組化,主要指以功能來劃分的。模組化主要遵循高內聚低耦合,也即職責單一。
卡內基.梅隆大學的robertharper教授,「物件導向程式設計應該完全的從基礎課程中刪除掉,因為它既是反模組化,又是反並行的,這是它的非常固有的特徵,所以它不適合作為一種現代的電腦科學課程。」可以模組化和並行在現代程式設計中的重要性是高於
ood的一些原則的。
mvc(
model view controller
),能夠將
ui和資料以及對資料處理的邏輯分開,降低耦合。在《
head
first
設計模式》中,將
mvc列為復合模式,是模式的模式,是因為
mvc會使用到多個模式。
設計模式總結
http www.chenjiliang.com article view.aspx?articleid 6708 比較 設計模式 常用程度 適用層次 引入時機 結構複雜度 abstract factory 比較常用 應用級設計時 比較複雜 builder 一般 級 編碼時一般 factory me...
設計模式總結
模式相關的描述 裝飾者 包裝乙個物件,以提供新的行為 狀態 封閉了基於狀態的行為,並使用委託在行為之間切換 迭代器 在物件的集合之間遊走,而不暴露集合的實現 外觀 簡化一群類的介面 策略 封閉可以互換的行為,並使用委託來決定要使用哪乙個 包裝物件,以控制對此物件的訪問 工廠方法 由子類來決定要建立的...
設計模式總結
這類模式的特質是管理物件的建立過程。通常設計總是以使用工廠方法開始,當設計者發現需要更大的靈活性時,設計會向其它建立型模式演化。工廠方法模式 單例模式 抽象工廠方法模式 建造者模式 原型模式 簡單工廠模式 這類模式從程式的結構上解決模組之間的耦合問題。介面卡模式 裝飾模式 橋接模式 組合模式 享元模...