Software Design 2010年7月号《補足》#1: 図解(総天然色版)
|小粒ちゃんねる|
小粒ちゃんねる #小粒ch
《著》小粒ちゃん@湘南組、小粒ちゃん@博多組
|関連記事|
Software Design 連載記事
ここでは、掲載記事に関する補足情報を公開しています。
老頭児(ロートル)エンジニアのつぶやき
GoFを反面教師に - Let's GoForward
- リスト4 Visitor(GoFの場合)
class Rectangle(Geometry): def accept(self, visitor): visitor.visitRectangle(self) class Circle(Geometry): def accept(self, visitor): visitor.visitCircle(self) class Polygon(Geometry): def accept(self, visitor): visitor.visitPolygon(self)
- リスト5 Visitor/GoForward
class Geometry: def accept(self, visitor): s = "visit%s"%self.__class__.__name__ getattr(visitor, s)(self)この手法は Smalltalk-80 から学びましたが、Python でも同様のイディオムを多用しています。PyPy では、lib-python/2.5.2/compiler/visitor.py 内のメソッド ASTVisitor.dispatch(48行目)がこれに該当します。
《余録》
記事では触れませんでしたが、同様の記述は「Expert Python Programming」でも紹介されています。PyPy のソースコードを見たときと同様に、Smalltalk-80 のデジャビューを見る思いがしたものです。
- 作者: Tarek Ziade
- 出版社/メーカー: Packt Publishing
- 発売日: 2008/09/30
- メディア: ペーパーバック
- クリック: 62回
- この商品を含むブログ (3件) を見る
- Chapter 14, Useful Design Patterns
原著を手にしたのは数か月前…かと思っていたら、すでに一年半以上も前のことでした。歳を重ねると、月日が経つのは早いもので…。
※ 最近、邦訳が出版されたようなので、こちらも参考にすると良いでしょう。
- 作者: Tarek Ziade,稲田直哉,渋川よしき,清水川貴之,森本哲也
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2010/05/28
- メディア: 大型本
- 購入: 33人 クリック: 791回
- この商品を含むブログ (90件) を見る
↑TOP
関連記事
- @
Last updated♪2010/06/08