2009-07-02 4 views
2

に聞かないでください、私は2つのオブジェクトを持っていると言いますそれをマップするだけでなく、ヌルテーブルをチェックする必要があります。知らせるために良い場合、

それがこれを行うには、より理にかなって:

Table tab = new Table(); 
Map mymap = tab.MapTable(); 

テーブルには新しいマップを作成し、その後、それ自身の状態と任意のチェックをチェックするための責任があること方法。

EDIT:

Map.MapTables(ICollection<Table> tab) 

なり、この平均:もう少し情報

私はまた、1つのマップは多くのテーブル、のようなものを含めることができるように、テーブルのコレクションをとるMapTablesメソッドを持っています私はMap型のmapコマンドを残すべきです。

あなたはどう思いますか?私はテーブルクラスに関連するすべての表のためのロジック(あなたが提案した第二の溶液)

それとも、このようにも何かを保つために投票

答えて

0

...

Table tab = new Table(); 
Map mymap = tab.CanMap ? new Map(tab) : null; 

そのようTable.CanMapをプロパティには、マッピングが可能かどうかを判断するためのすべてのロジックが含まれます。

0

あなたの環境では、テーブルを作成するためのマップを作成するのは当然ですか?テーブルのマッピングには多くのテーブルメンバーが関与していますか?地図の作成に関係するテーブルに固有のビジネスルールはたくさんありますか?

答えはあなたのドメインによって異なり、それらは私が決定を下す際に尋ねるいくつかの質問です。

1

Tableには約Map、またはその逆のことは分かりますか?あなたのTELL-ドント・アスク・ソリューションを - - 理にかなって

  • Tableもしsが、約Map秒、Table.AsMap()またはTable.ToMap()インスタンスメソッドを知っています。 (私はライブビューと第二の静的コピーになり最初のを想像してみてください。)

  • Map sが、約Table秒、Map.FromTable(Table)静的メソッドを知っている場合 - あなたのオリジナルのソリューションを - 意味があります。

どちらの方法でも動作する可能性があります。どちらの方法もコードの残りの部分に依存します。どのように依存関係は自然に行くようですか?

他の知っているかのいずれかのために、それは意味がない場合は、TDAソリューションは少し微妙かもしれない:インスタンスメソッドTable.Populate(SomethingPopulatable)を作成し、それを呼び出し、静的メソッドにSomethingPopulatableを通過するいくつかのTableMapperを持っています例えば、Map.BuildFrom(SomethingPopulatable)と呼ばれる。

しかし、その道を行くことは、ビットを得る危険性がありますArchitecture Astronaut

1

どちらの場合も、どちらの場合も、あなたが仕事を委任しているように、「尋ねなさい、尋ねないでください」と思う。全部がの場合、この種の論理。

問題のドメインについて知らずに、それ以上に言い難いです。あるデータ構造を別のタイプの構造にすると、空き関数が現実的に行うかもしれない種類のように感じられ、Mapクラスへのマップの依存関係を追加できなくなります。これは良いことです。

関連する問題