エンティティ、バリューオブジェクト、またはそれは何であり、どこにあるべきか?
-
20-09-2019 - |
質問
「ツール」と呼ばれるクラスがあります。ツールには、名前、説明、特定の特定のプロパティがあります。名前や他のものは読み取られるため、ツールは特別ですが、説明はユーザーによって変更できます。
ツールのカウントは一定であり、開発時に知られています。それはそれらを照会し、ユーザーが説明を更新できる場所をユーザーに表示する必要があるため、オブジェクトではありません。したがって、それは一種のエンティティですが、ユーザーは新しいツールを作成することはできません。
私はこのようなツールをとる可能性を探しています:
Tool.SomeGreatTool
Somegreattoolが「いくつかの優れたツール」という名前のツールであり、説明はユーザーが指定したように同じである必要があります。
ジミー・ボガードには、ほぼ完璧なソリューションがあります しかし、nhibernateはgreattoolについて何かを知っており、説明はnullになります。
ジミーのソリューションを変更する方法、または別の方法で行う方法は?データベースからgreattoolをインスタンス化する方法は?
解決
私たちは、これらの種類の半定数データを、ある種の有名なエンティティとして扱っています。ツールタイプの値オブジェクト/列挙クラスを作成しますが、ツールタイプをツールと分離します。 ToolRepository.find(ToolType.Screuddriver)のようなことをするには、永続的なストアに行く必要があります。ツールタイプごとに1つのツールしかありませんが、これらの2つの概念を分離します。
所属していません StackOverflow