C# Реализация единой ответственности и разделения интерфейса - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь реализовать SOLID, и я просто разделяю свой интерфейс IGet на 3 небольших интерфейса для отдельных конкретных c целей каждого класса, реализующего один интерфейс

Так что я разделил IGet в INsiGetV20, INsiGetArtefact, INsiGetGeneri c.

public interface INsiGet : INsiGetV20, INsiGetArtefact, INsiGetGeneric
{

}

public class NsiGetRest : INsiGet
    {
        readonly INsiGetV20 _nsiGetV20;
        readonly INsiGetArtefact _nsiGetArtefact;
        readonly INsiGetGeneric _nsiGetGeneric;

        public NsiGetRest(INsiGetV20 nsiGetV20, other...)
        {
            _nsiGetV20 = nsiGetV20;
            _nsiGetArtefact = new NsiGetArtefactRest(other...);
            _nsiGetGeneric = new NsiGetGenericRest(other...);
        }

        public async Task GetRequestOne()
        {
            await _nsiGetV20.GetRequestOne();
        }

        public async Task<int> GetRequestTwo(int id, string option);
        {
            return await _nsiGetArtefact.GetRequestTwo(id, option);
        }

        public async Task<string> GetRequestThree(int id);
        {
            return await _nsiGetGeneric.GetRequestThree(id);
        }
    }

NsiGetRest используется с шаблоном фасада, таким образом, я использую 3 различных класса для одного большого класса. Это правильный путь?

Лучше создать новый интерфейс вместо IGet с собственным настраиваемым подписчиком?

Спасибо всем за предложение

...