public CreateCommandExecutor(IFiguresStorage figuresStorage, IFigureCreationManager figuresCreationManager, ILogger logger) { FiguresStorage = figuresStorage; FiguresCreationManager = figuresCreationManager; Logger = logger; }
/// <summary> /// Initializes a new instance of the <see cref="FiguresController"/> class. /// </summary> /// <param name="orderStorage">Хранилище заказов. реализация IOrderStorage, должна быть зарегистрирована в DI.</param> /// <param name="figuresStorage">Хранилище фигур, реализация IFiguresStorage, должна быть зарегистрирована в DI.</param> /// <param name="orderValidator">Проверщик заказа. реализация IOrderValidator, должна быть зарегистрирована в DI.</param> public FiguresController( IOrderStorage orderStorage, IFiguresStorage figuresStorage, IOrderValidator orderValidator) { this.orderStorage = orderStorage; this.figuresStorage = figuresStorage; this.orderValidator = orderValidator; }
public FiguresController(ILogger <FiguresController> logger, IOrderStorage orderStorage, IFiguresStorage figuresStorage) { // Сделаем сервис логирования обязательным, раз уж у нас высоконагруженный контроллер/экшен _logger = logger ?? throw new ArgumentNullException(nameof(logger)); // Без сервиса orderStorage контроллер не сможет выполнять свои функции и, если его не инжектировали, то рушим всё и сразу _orderStorage = orderStorage ?? throw new ArgumentNullException(nameof(orderStorage)); // Вместо ссылки на статический сервис, сделаем его инжектируемым, чтобы в будущем можно было легко протестировать и ничто нам не мешает сделать его как Singleton, но не здесь _figuresStorage = figuresStorage ?? throw new ArgumentNullException(nameof(orderStorage)); }
public PrintCommandExecutor(IFiguresStorage figuresStorage, ILogger logger) { FiguresStorage = figuresStorage; Logger = logger; }
public OrderService(IFiguresStorage figuresStorage, IOrderStorage orderStorage) { _figuresStorage = figuresStorage; _orderStorage = orderStorage; }