LoginSignup
2
2

More than 5 years have passed since last update.

GoF Visitorパターンのサンプル

Last updated at Posted at 2014-09-06

はじめに

http://qiita.com/ms2sato/items/416dd5c2db88997deb0c
これの続きみたいなもの。調子に乗って次はVisitorパターンとCompositeパターン。大体一緒に出るだろうから。

せいか

構造化エディタ的なものを書きました。コンテンツと背景色が変えられるようなものです(新規追加は怠けてしまってできません)。

jsdo.it http://jsdo.it/ms2sato/uOR0
github https://github.com/ms2sato/gof/blob/master/visitor/main.coffee

おもっていること

型のない言語だとわかりにくいですが、本来は

  • 抽象化し過ぎて実体にアクセスしにくい場合にその方法を提供する為(これがないと型を調べてキャストするような操作が発生して、抽象化を破壊してしまう)。
  • 操作できるオブジェクトの種類と、操作の種類そのものについて開いた設計にする為

に作るのがVisitorだと思います。Compositeするとよくこの状況に陥るので殆どセットで出てくるというのが自分の経験上の感覚です。でも、最近の緩い言語触っていると型を調べて分岐するのを当たり前に書いたりするから、そういう作り方でも良いのかもしれませんね。いらない子扱いされてしまいそうなのもわかる気がします。私のコードでもオーバーロードで解決するところをconstructorの名前を調べて分岐していますしね。

ifが出てこないのはStateパターンと同様。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2