2011-01-20 18 views
0

以前のアーキテクチャでは、ファサードを使用して簡単な一連の方法で多数のタスクを実行していました。何かのように:ファサード付きアダプタの使用

startComputer(...) 
shutdownComputer(...) 

私はアプリケーションを拡張するので、私はファサード自体に複数のタイプの入力を翻訳する必要があります。過去にはstartComputerが6つのパラメータをとり、新しいアーキテクチャでは解析可能な文字列入力を受け取り、別の場合にはいくつかのbase-64でコード化された混乱が起きたとしましょう。基本的には、全面的に、高度なコマンドを使用して同じサブシステムにアクセスしたいが、あらゆる種類のフォーマットを取るインターフェースを定義したい。

私はアダプターとファサードについて考え始めると混乱します。なぜなら、おそらく人は常にその違いを描いているからです。この場合、私が本質的に望むのは、ファサードをそのまま維持しながら、さまざまな入力をサポートするためのアダプタを作ることです。この場合、ファサードは適応者である。

これは意味があるのですか、それとも良い方法がありますか?

+0

区別を覚えておく簡単な方法をパラメータ:アダプタのように自分自身を一つのインタフェースを取り、それをラップすることができます/提示する純粋に存在しますファサードはより複雑なシステムの高度な単純化として機能します。 1つは必要ですが、もう1つはきれいです:) –

+0

私はこれを正しく表現していないかもしれません - 私は両方の目的を達成するために両方を同時に使用するということを提案しています。より複雑なシステムを単純化する。 –

答えて

1

はあなたのファサードがそれだ定義するには、「コマンド」のパターンを使いたいように聞こえる http://en.wikipedia.org/wiki/Command_pattern

+0

多分...しかし、私はまだすべての変化する入力を何らかの種類のコマンドオブジェクトに変換する必要があります。 –

+0

あなたのファサードのメソッドはパラメータとしてコマンドを受け取ります。ファサードの呼び出し元は、どのタイプのコマンドを作成して渡すかを選択することができます –

+0

しかし、統一されたCommandオブジェクトにさまざまなタイプの入力をすべて変換するためのアダプタはまだ必要ではないでしょうか? 3つの異なるクラスは、同じコマンドを送信できるようにしたいが、異なる入力から作成する必要があります。 –

関連する問題