BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース .NETにおけるコマンドパターン

.NETにおけるコマンドパターン

原文(投稿日:2012/04/16)へのリンク

Command Patternにおいて、オブジェクトは後々メソッドを実行するために必要なメソッド名やメソッドを持つオブジェクト、パラメータの値などの情報すべてを表し、それらをカプセル化するために用いられる。記事連載「The Command Pattern In .NET」の最初のパートでは、Eric Vogel氏がWPFアプリケーションの場合のICommandインターフェースを用いたウォークスルーを行っている。

コマンドは普通は操作であり、コマンドオブジェクトはその操作をどのように行えば良いかを知っている。コマンドオブジェクト自身は共通インターフェースを実装している。呼び出し元はメソッドを呼び出すためにはインターフェースを呼び出せば良く、実装の詳細を知っている必要は無い。 これにより操作を呼び出すオブジェクトと操作をどのように実行すれば良いかを知っているオブジェクトを分離し、関連性を明確に分ける事が出来るようになる。

SilverlightやWPFアプリケーションにおいてICommandを用いる主な目的は、XAMLビューのコードビハインドからユーザーインタラクションコードが無い綺麗な状態を保つことである。記事「Using ICommand In Silverlight」はSilverlightアプリケーションでこれを実装する方法を理解するのに良い読み物である。コマンドオブジェクトは後々のメソッド実行のためにキューイングされるため、このパターンはWPF と Silverlight 向けの Undo-Redo フレームワークを実装するのにも非常に便利である。

ICommand自体はコマンドパターンを実装する必要が無い事に注意する必要がある。コマンドが何であるかを定義する独自のインターフェースや抽象クラスを作成する事が出来る。 これらの サンプル はICommandインターフェースを用いずに、ただし同様の基本的なコンセプトを用いてどのようにコマンドパターンを実行すれば良いかを示している。

この記事に星をつける

おすすめ度
スタイル

BT