2016-05-22 6 views
0

Я класса, которые имеют:Должен ли я использовать ninject для инициализации службы с помощью репозитория?

IMessageRepository messageRepository; 
IMessageService messageService; 

Должен ли я поместить их обоих в конструктор класса и из-за этого использование Ninject инициализировать оба?

public MessageController(IMessageRepository messageRepository, IMessageService messageService) 
    { 
     this.messageRepository = messageRepository; 
     this.messageService = messageService; 
    } 

Или я должен использовать только messageRepository из ninject и инициализировать мое сообщениеУслуги с ним? (Он принимает IMessageRepository в конструкторе)

public MessageController(IMessageRepository messageRepository) 
    { 
     this.messageRepository = messageRepository; 
     this.messageService = new MessageService(messageRepository); 
    } 

ответ

2

Я бы предпочел, чтобы положить их обоих в параметрах конструктора.

Потому что в будущем у вас может быть другая реализация IMessageRepository.

Кроме того, у вас будет больше контроля над вашими зависимостями за пределами ваших классов (например, вам может потребоваться использование разных хранилищ в Controller и Service).

Надеюсь, это поможет.