Flex、AIR、Java、Androidなど

1月23日 2009

Mementoパターン、Stateパターン、Flyweightパターン

Posted by: tachibana In: プログラミング

Mementoパターン - 自分なりの結論:

あるプロジェクト内で何度も状態が変化するようなインスタンスがある場合、それの状態を保持しておいて利用できるようにしようというのがMementoパターン。保持を行うクラスのフィールドのアクセス修飾子は何もつけず同じパッケージ内のみからのアクセスを通すようにする。また、コンストラクタも同じくアクセス修飾子を省略してパッケージの外からはnewできないようにしておく。パッケージ内にはその状態保持クラスと保持される値を持つオブジェクトしか置かないようにすればフィールドはprivateにしなくても直接アクセスしてやって問題ない。オブジェクトに何らかの状態の変化があり、それを任意のタイミングで状態保持クラスに変更を保存するようにすれば、それから何度か状態が変化したとしても状態保持クラスに残っている値をもとに復元したりすることも可能になる。値を上書きするのではなく配列に入れたりすることでさらに高度なことも可能となる。

Stateパターン - 自分なりの結論:

イベントを起こし得る複数のオブジェクトがあり、それらがイベントを起こしたときにある条件によって処理を分けたいような時、アクション毎にif文とかを書いてはいけない。「ある状態」を表すクラスを作るべきである。Stateパターンを利用する。イベントはdispatchされると状態を表すクラスの親クラスのメソッドを呼ぶだけで、実際にその時にどのように条件により仕訳されているかは知らない。ともかく状態により親クラス型の変数はいくつかのそのサブクラスのインスタンスであるのは間違いないので分岐がスッキリし、管理しやすくなる。

Flyweightパターン - 自分なりの結論:

Prototypeパターンとの違いが分からん。
EasyFreeAds Blog News Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google Yahoo Buzz StumbleUpon

No Responses to "Mementoパターン、Stateパターン、Flyweightパターン"

Comments are closed.

Categories

 

2017年9月
« 4月    
 123
45678910
11121314151617
18192021222324
252627282930  

About

Author: tachibana

  • ちょっとしたことはTwitterに書いています。こっちはアプリの公開等の時に更新されます。
  • 最近はもっぱらJavaとObjective Cです。AS3は飽きました。
  • スクリプト言語ではPerlが好きでしたが最近はGAE/Jで何でもやってます。
  • Linuxは自宅サーバー建てるのがやっとのレベルです。前の会社で何日も徹夜してやったのはいい思い出です。
  • アプリへのご要望などご意見等ありましたらお気軽にご連絡下さい。

Alternative content here