[Note] Design Patterns 課程筆記
名詞解釋: Slide 12 Context :會使用的情況 Force : 限制條件 以行李箱為例: Context :要裝東西,要裝重物 Force :上下樓梯不方便 Slide 13 Related Pattern: 一個 Pattern 會附著其他形式的 Pattern 思考: 大的包包為什麼會有小的口袋? 思考:什麼是設計? 問題:沒有物件導向之前? 程式的資料跟程式的關係是什麼? 回想 C 語言當中的 data → 資料跟程式間的關係,簡單來說,就是 Data Structure & Algorithm 有了物件導向的概念後 → 把資料跟方法(程式function)結合在一起,變成了物件(object) 問題:在沒有framework之前,用什麼? → Library Framework v.s. Library framework 是我想要完成一件事,我先把這個架構寫好,大部份完成了,但是沒有把細節完成 library 僅僅提供執行所需的函數,沒有提供架構 Design Pattern 分成三大類: Creational : 物件生出相關的Pattern Structural : 物件跟物件關係的Pattern Behavioural : 物件跟物件互動行為的Pattern 問題:物件導向程式Performance一般比較不好,為什麼我們需要物件導向程式? Code reuse 較容易 較為彈性 較好maintain Creational Pattern Singlaton 例如: 有一個Company的Class,中華電信這家公司是Company Class的一個instance 當我們在Access 的時候,要確保我們看到的是同一個中華電信的instance 不可以自己亂new一個新的 這時就需要一個機制可以限制有一個Class只能被new一次,不能出現第二次 也就是Create的時候只能Create一次,不能Create第二次 做法: 不讓別人new! 把Constructor private 保護起來,然後利用一個static的method去呼叫它 ...