後者は恐ろしいです。これは、販売注文を持つものをモデル化しており、それはオブジェクトによってモデル化されています。販売注文オブジェクトを持つものをモデル化するのではありません。
「BusinessObject」は、開発者がビジネスオブジェクトを処理するのを支援するツールを作成している場合は、コード内の何かの名前のみにする必要があります。
前者はしばしば良いです。
複数存在する可能性がある場合は良くありませんSalesOrder
。1つが「メイン」であっても、混乱を招きます。ただし、SalesOrders
列挙可能またはオブジェクトのコレクションであったプロパティSalesOrder
は適切です(英語の複数形が単数形の+'s'形式でない場合は、英語の複数形の場合を除いて、単にsを追加するのではなく、実際の複数形を使用してください単数形と同じです。
他のすべてが販売に関連している場合、それは素晴らしいことではありません。たとえば、これはひどいです:
public class Sale
{
public SalesOrder SalesOrder{get;set;}
public SalesReference SalesReference{get;set;}
public decimal SalesValue{get;set;}
public string SalesCurrency{get;set;}
}
この場合、各プロパティ名から「Sales」を切り取りますが、クラス名からは(必然的に)切り取りません。
ただし、これはより適切な場合です。
public class Sale
{
public SalesOrder SalesOrder{get;set;}
public StockOrder StockOrder{get;set;}
}
全体として、それにアプローチする方法は次のとおりです。
- このクラスが行うことの最良の名前は何ですか。他のクラスが行うこととは異なります(したがって、特定のクラスに特に関連するものとして特に目立つ場合を除いて、「オブジェクト」、「ビジネスオブジェクト」、「エンティティ」などはありません)。場合)。
- 他のプロパティと区別するために、プロパティが反映するものの最良の名前は何ですか。
特定のケースで同じ名前を付けることになった場合、それは問題ありません(ネストされたクラスでない限り、あいまいで違法な場合)。彼らが別の名前を付けることになった場合は、それでも問題ありません。