次のクラスがあるとしましょう。
public class Ticket {
public int Id { get; set; }
public string Event { get; set; }
...
}
public class TicketService {
public void acceptTicket(Ticket ticket) {
...
}
...
}
私の質問は、チケットエンティティに関連する静的ヘルパーメソッド(サービスクラスのように状態を必要としない)を追加するのに最適な場所はどこですか?(これは、システム全体の他の多くのエンティティ/サービスの中で1つのエンティティ/サービスであることを覚えておいてください)。
今、私は次の可能性を考えています:
- 独自の.csファイルにTicketHelperという新しいクラスを作成します。
- 静的ヘルパークラスをTicketクラスに直接作成します
- Serviceクラスに直接静的Helperクラスを作成します
- 他のサービスメソッドと同じように、メソッドをサービスクラスに直接追加するだけです。
- ...これらよりも優れたソリューションですか?
わかりやすくするために、これが#2または#3の意味です。
public class TicketService {
public void acceptTicket(Ticket ticket) {
...
}
...
public static class Helper {
public static Dictionary<string, List<Ticket>> groupByName(List<Ticket> tickets) {
// returns the map of name/tickets
}
}
}
この場合、APIは次のようになります。
Ticket ticket = new Ticket();
List<Ticket> tickets = new List<Tickets>();
TicketService service = new TicketService();
service.acceptTicket(ticket);
// leaving out the creation of a list of tickets...
var groups = TicketService.Helper.groupByName(tickets);