エンティティ、バリューオブジェクト、またはそれは何であり、どこにあるべきか?

StackOverflow https://stackoverflow.com/questions/2257268

質問

「ツール」と呼ばれるクラスがあります。ツールには、名前、説明、特定の特定のプロパティがあります。名前や他のものは読み取られるため、ツールは特別ですが、説明はユーザーによって変更できます。

ツールのカウントは一定であり、開発時に知られています。それはそれらを照会し、ユーザーが説明を更新できる場所をユーザーに表示する必要があるため、オブジェクトではありません。したがって、それは一種のエンティティですが、ユーザーは新しいツールを作成することはできません。

私はこのようなツールをとる可能性を探しています:

Tool.SomeGreatTool

Somegreattoolが「いくつかの優れたツール」という名前のツールであり、説明はユーザーが指定したように同じである必要があります。

ジミー・ボガードには、ほぼ完璧なソリューションがあります しかし、nhibernateはgreattoolについて何かを知っており、説明はnullになります。

ジミーのソリューションを変更する方法、または別の方法で行う方法は?データベースからgreattoolをインスタンス化する方法は?

役に立ちましたか?

解決

私たちは、これらの種類の半定数データを、ある種の有名なエンティティとして扱っています。ツールタイプの値オブジェクト/列挙クラスを作成しますが、ツールタイプをツールと分離します。 ToolRepository.find(ToolType.Screuddriver)のようなことをするには、永続的なストアに行く必要があります。ツールタイプごとに1つのツールしかありませんが、これらの2つの概念を分離します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top