Python.use(better, anti=”GoF”) # Let’s GoForward
‖記事一覧‖
Let’s GoForward GoF を反面教師に
★ 初級/入門 ★★ 初級/基礎 ★★★ 初級/応用 ★★★★ 中級 ★★★★★ 上級
CONTENTS
AbstractFactory | Adapter | Bridge | Builder | Command | Composite | Decorator |
Interpreter | Iterator | Mediator | Observer | State | Strategy | Visitor |
Chain, Facade, FactoryMethod, Flyweight, Memento, Prototype, Proxy, SimpleFactory Singleton, Template /Files/Inheritance/IntroCSharp/Objects/UML/UsingClasses/VisCsharp/
Observer
《導入》パターンを適用する前に
- 2007-05-21《01》Observer: パターン前夜 #1
- 2007/05/22《2》Observer(2)パターン前夜★★〈 旧版 〉
- 2007-05-23《03》Observer: パターン前夜 #3
- 2007/05/24《4》Observer(4)パターン夜明け前★★〈 旧版 〉
- 2007/05/25《5》Observer(5)パターン夜明け前★★〈 旧版 〉
- 2007-06-18《6》Observer(6)パターン夜明け前
- 2007-06-19《7》Observer(7)パターン夜明け前
- 2007/06/20《8》Observer(8)パターン夜明け前★★〈 旧版 〉
《基本》パターンを適用した後で
- 2007/06/21《9》Observer(9)パターンの夜明け★★伊藤うさぎ
- 2007/06/22《10》Observer(10)パターンの夜明け★★伊藤うさぎ
- 2007/07/16《11》Observer(11)ドタ、バタ、パターン!★★〈 旧版 〉
- 2007/07/17《12》Observer(12)ドタ、バタ、パターン!★★ 伊藤うさぎ
- 2007/07/18《13》Observer(13)pull モデル vs. push モデル★★ 伊藤うさぎ
- 2007-07-19《14》Observer(14)pull モデル vs. push モデル
- 2007/07/20《15》Observer(15)1対Nの依存性★★ 伊藤うさぎ
《発展》何が問題か
- 2007-08-20《16》Observer(16)パターンの午後:GoGoForward
- 2007/08/21《17》Observer(17)ValueHolder★★
- 2007/08/22《18》Observer(18)ValueHolder★★〈 旧版 〉
- 2007/08/23《19》Observer(19)AspectAdaptor★★
- 2007/08/24《20》Observer(20)AspectAdaptor★★
- 2007/09/17《31》Observer(21)AspectAdaptor★★ 伊藤うさぎ
- 2007/09/18《32》Observer(22)AspectAdaptor★★ 伊藤うさぎ
- 2007/09/19《33》Observer(23)AspectAdaptor★★ 伊藤うさぎ
- 》作業中です《
↑TOP
Visitor
《導入》パターンを適用する前に
- 2007/07/23《21》Visitor(1)パターン前夜★★ 河野かえる
- 2007/07/24《22》Visitor(2)パターン前夜★★ 河野かえる
- 2007/07/25《23》Visitor(3)パターン夜明け前★★ 河野かえる
- 2007/07/26《24》Visitor(4)パターン夜明け前★★ 河野かえる
- 2007/07/27《25》Visitor(5)パターン夜明け前★★ 河野かえる
- 2007/09/03《26》Visitor(6)パターン夜明け前★★ 河野かえる
- 2007/09/04《27》Visitor(7)パターン夜明け前★★ 河野かえる
《基本》パターンを適用した後で
- 2007/09/05《28》Visitor(8)パターンの夜明け★★ 河野かえる
- 2007/09/06《29》Visitor(9)パターンの夜明け★★ 河野かえる
- 》作業中です《《30》Visitor(10)パターンの夜明け★★
- 2007/10/01《36》Visitor(11)ドタ、バタ、パターン!★★ 河野かえる
- 2007/10/02《37》Visitor(12)ドタ、バタ、パターン!★★ 河野かえる
AbstractFactory
《導入》パターンを適用する前に
- 2007/10/04《39》AbstractFactory(1)パターン前夜★★ 河野めだか
- 2007/10/05《40》AbstractFactory(2)パターン夜明け前★★ 河野めだか
- 2007/10/22《41》AbstractFactory(3)パターン夜明け前
- 移動中《42》AbstractFactory(4)パターン夜明け前★★
- 移動中《43》AbstractFactory(5)パターン夜明け前★★
- 移動中《44》AbstractFactory(6)パターン夜明け前★★
《基本》パターンを適用した後で
- 移動中《45》AbstractFactory(7)パターンの夜明け★★
- 2007/11/19《46》AbstractFactory(8)パターンの夜明け★★ 河野めだか
- 2007/11/20《47》AbstractFactory(9)ドタ、バタ、パターン!★★ 河野めだか
- 2007/11/21《48》AbstractFactory(10)ドタ、バタ、パターン!★★ 河野めだか
《発展》何が問題か
- 2007/11/22《49》AbstractFactory(11)パターンの午後:GoGoForward★★ 河野めだか
- 2007/11/23《50》AbstractFactory(12)part/factory catalog★★ 河野めだか
- 》作業中です《
↑TOP
Command 《導入》パターンを適用する前に
《基本》パターンを適用した後で
《導入》パターンを適用する前に
《基本》パターンを適用した後で
State 《導入》パターンを適用する前に
《基本》パターンを適用した後で
History
GoF のデザインパターンは、図らずも Java/C# の脆弱さを露呈する結果となりました。Ruby/Python などより洗練されたオブジェクト指向の支援が得られる環境下では、いくつかのパターンは単純なイディオムに過ぎず、言語によっては組み込みの機能として提 供されているものも珍しくありません。また、GoF の事例を鵜呑みにすると、迂遠なアプローチを余儀なくされるばかりか、Ruby/Python などのより洗練された特徴を活かせません。GoF を模写しても始まりません。GoF が模写したその起源を探ることで、パターンの本質に迫れます。
この連載では、GoF デザインパターンを反面教師として、真のオブジェクト指向の世界を目指す旅へと誘(いざな)います。GoF が何を伝え、何を伝えなかったのか。そのルーツを探ってみると、新たな知見が開けてきます。そろそろ、釈迦の掌(Java/C#)から脱して、天竺(Ruby/Python)へと旅立ちませんか。
Java 原人からホモサピエンスへ:Java/C# から Ruby/Python への進化を望むプログラマーには、ひとつありがちな落とし穴があります。それは、GoF の例題に示してある、Java/C# のために脚色されたフレームワークに追従するあまりに「先祖返り」を余儀なくされ、Ruby/Python の進化した特徴が見過ごされてしまうことです。2011年までに、アナログ放送からディジタル放送への対応に迫られるのと同様に、アナログ思考(Java/C#)からディジタル思考(Ruby/Python)へと、プログラマーの世代交代も加速しつつあります。 さあ、みなさんも取り残されないよう、ただ前進あるのみです。(^_^)
デザインパターンの本質を知りたければ、GoF 本を見ても始まりません。その原典にあたってみることです。すると、GoF が「何を伝え/何を伝えなかったか」を知ることができます。
第1版♪1995/01/29:Smalltalk 第2版♪2003/07/02:Swing/Jython 第3版♪2008/04/28:WPF/IronPython
→旧版は《こちら》です♪2007年8月25日 (土)