# [筆記] 物件導向分析 (notes for 水球軟體學院 OOA 簡介) ## 物件導向基本概念 **物件**導向分析: - 類別是**物件**的交集 物件導向的點跟線: - 點:**物件**與**類別** - 線:**關係**與**依賴** 方析方法: - 語意 - 直接觀察 OOP 定義了不同的**抽象層級** ```java 資料 -> 物件 (具體) -> 類別 -> 抽象類別 -> 介面 ``` 《思考》為什麼由高階的抽象開始思考不好呢? → 如果不這麼做,會怎麼樣呢?例如:一言不合就開類別、界面?為什麼而開,但沒有依據,極可能包含著幻想的成份。 由高階的抽象開始,容易 over design。相反地,由具體的物件開始,再將它們**分類**成類別,基於對於「事實」的觀測,而開出的類別是「富有依據」的。 > 設計決策 → 富有根據 > recap: 由下列的順序,在有需要的時候一層一層往上粹取,即為**富有根據**的設計決策: ```java 資料 -> 物件 (具體) -> 類別 -> 抽象類別 -> 介面 ``` **活動**:找出需求中的名詞,再分辨出哪些是物件?哪些是類別? ## UML:: Class Diagram - 依賴:發生在行為中的一瞬間 - 關聯:has-a 超過一瞬間 - 繼承:Is-a、一般化 (generalization) 類別的關係由強至弱,恰為上面的順序由繼承至依賴。解耦就是將關係由強降至弱,甚至沒有的方向。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up