2016-05-22 6 views
0

Ich habe Klasse, die hat:Sollte ich mit Ninject Service mit Repository initialisieren?

IMessageRepository messageRepository; 
IMessageService messageService; 

i von ihnen setzen sollte sowohl in Konstruktor der Klasse und wegen dieser Verwendung ninject beide zu initialisieren?

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

Oder sollte ich nur MessageRepository von Ninject nehmen und meinen messageService damit initialisieren? (Es dauert IMessageRepository in Konstruktor)

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

Antwort

2

Ich würde es vorziehen, beide in Konstruktorparameter zu setzen.

Da Sie in Zukunft möglicherweise eine andere Realisierung von IMessageRepository haben.

Darüber hinaus haben Sie mehr Kontrolle über Ihre Abhängigkeiten außerhalb Ihrer Klassen (z. B. müssen Sie möglicherweise andere Repositories in Controller und Service verwenden).

Ich hoffe, es wird helfen.