我上课了:
IMessageRepository messageRepository;
IMessageService messageService;
我应该将它们都放在类的构造函数中,并且因为使用ninject来初始化它们吗?
public MessageController(IMessageRepository messageRepository, IMessageService messageService)
{
this.messageRepository = messageRepository;
this.messageService = messageService;
}
或者我应该从ninject只获取messageRepository并用它初始化我的messageService? (它在构造函数中需要IMessageRepository)
public MessageController(IMessageRepository messageRepository)
{
this.messageRepository = messageRepository;
this.messageService = new MessageService(messageRepository);
}
答案 0 :(得分:2)
我更愿意将它们都放在构造函数参数中。
因为将来您可能会有另一种IMessageRepository
的实现。
此外,您可以更好地控制类之外的依赖项(例如,您可能需要在Controller
和Service
中使用不同的存储库。)
希望它会有所帮助。