(原創) 學習Design Pattern的小技巧 (OO) (Design Pattern)

Abstract
很多人學習Design Pattern,總是被眾多的class暈了頭,認為Design Pattern是『化簡為繁』,因此抓不到學習的重點,在此分享一下我的學習心得。

Introduction
關於學習Design Pattern,以下是我的兩點建議
1.將重點放在class diagram上,不要放在example code上
每本書的example code都不一樣,有的很簡單,有的很複雜,甚至牽涉到domain或algorithm,這樣反而將容易失焦。example code目的只是要我們了解Design Pattern,而非迷失在example code中,將焦點重新放在class diagram上,思考整個架構的意義。

2.從client體會Design Pattern的美
Design Pattern就是為了『擁抱變化』,所以將來若『需求改變』,能讓client的main()完全不需改變,或僅做很少的改變,則是Design Pattern的目的。這也是為什麼Design Pattern 3大原則第一條就是說:『Program to an interface, not an implementation』。但凡事都是trade-off,要讓client漂亮,換來的就是library的class變多變複雜了,所以我常從client的角度去思考,體會Design Pattern的美。

3.熟記並理解每個pattern的Intent(目的)
因為Design Pattern都是基於多型/多態,都是靠delegation的手法,所以很多pattern非常的像,甚至可以說某個pattern指是另外一個pattern的特例(如strategy和bridge就非常的像,strategy可以說是bridge的特例),搞清楚pattern的intent,才能用對pattern,並與別人溝通。

posted on 2007-09-06 20:23  真 OO无双  阅读(7899)  评论(12编辑  收藏  举报

导航