後者は恐ろしいです。これは、受注を持つものをモデリングするもので、受注オブジェクトを持つものをモデリングするのではなく、オブジェクトによってモデル化されます。
"BusinessObject"は、開発者がビジネスオブジェクトを処理するためのツールを作成している場合にのみ、コード内の名前でなければなりません。
前者はよくよくあります。
複数の可能性がある場合はうまくいきませんSalesOrder
- 「メイン」の場合でも混乱を招きます。しかし、オブジェクトの列挙型またはコレクションであるSalesOrders
プロパティは良いです(英語の複数形が単数形のものでない場合は、sを追加するのではなく、実際の複数形を使用します)。 。英語の複数は単数と同じである
他のすべてが販売関連であるとき、それは素晴らしい未満だ例:これは恐ろしいです。
public class Sale
{
public SalesOrder SalesOrder{get;set;}
public SalesReference SalesReference{get;set;}
public decimal SalesValue{get;set;}
public string SalesCurrency{get;set;}
}
この場合、私はそれぞれの「販売」をカットしたいですクラス名から(必然的に)そうではありません。
しかし、これはより良いケースです:全てにおいて
public class Sale
{
public SalesOrder SalesOrder{get;set;}
public StockOrder StockOrder{get;set;}
}
、それにアプローチする方法は次のとおりです。
- 他のクラスが行う(したがって、ノー「オブジェクト」何からそれを区別こと、このクラスが何のための最高の名前は何ですか、 "ビジネスオブジェクト"、 "エンティティ"またはそれに類するもの)が含まれます。
- 他のプロパティと区別するために、プロパティに反映される最適な名前は何ですか。
特定のケースで同じ名前が与えられると、それは問題ありません(ネストされたクラスでない限り、あいまいで違法です)。彼らが別の名前を与えることになったら、それでいい。
私はその実際のユーザーコントロールを考えていた場合です。コントロールはSendEmail.ascxと呼ばれます。それで、その使用法は 'SendEmail 'を読むでしょう。Order' – Will
次に、ビジネスロジックからUIを分離し、クラス「Sale」(または何でも)を作成する必要があります。 –
です。 SalesOrderは、独自のプロパティとデータアクセスメソッドを持つ、完全に別のクラスです。このプロパティを使用して、ポストバック間のSalesOrderを追跡しています。 – Will