Ada*_*itt 5 c# design-patterns helper
假设我们有以下类:
public class Ticket {
public int Id { get; set; }
public string Event { get; set; }
...
}
public class TicketService {
public void acceptTicket(Ticket ticket) {
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,添加与工单实体相关的静态辅助方法(不需要像服务类那样的状态)的最佳位置在哪里?(请记住,这是整个系统中许多其他实体/服务中的一个实体/服务)。
现在我正在考虑以下可能性:
为了清楚起见,这就是我对 #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
}
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,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);
Run Code Online (Sandbox Code Playgroud)
我想答案取决于您期望谁来调用该方法。
就个人而言,我会将静态方法放在 TicketService 类上,因为它适用于多个实体,并将其设置为服务本身的私有方法。
然后,我将在服务上创建一个实例方法,以向服务的任何使用者公开该功能。它在一定程度上使 API 更加简洁,并且避免人们必须了解某项是否为静态方法的实现细节。