3-х уровневая архитектура. Как отделить пользовательский интерфейс от BL? - PullRequest
0 голосов
/ 21 апреля 2020

Я работаю над простым проектом в трехслойной архитектуре, и в настоящее время у меня есть этот интерфейс в пользовательском интерфейсе:

public interface IDisplay
{
    void PrintMessage(string msg);
    string GetInput();
    void ClearDisplay();
    void WaitForUser();
}

От этого что-то вроде ConsoleDisplay унаследует.

Затем на моем BL я вводю в c тип дисплея (используя IDisplay) и использую его функции для печати меню, получения пользовательского ввода и проверки его (все в BL ).

Я имею в виду, это работает, но мне это не кажется правильным. Предполагается, что пользовательский интерфейс имеет доступ к функциям BL, но в моем BL необходимо непрерывное взаимодействие ввода, проверка его и печать сообщения пользователю о каждом вводе. Это будет нарушать OCP, если я сделаю функцию для каждого случая

Я был бы рад, если бы вы могли посоветовать мне / отослать меня к хорошим источникам, которые объясняют эту проблему.

Спасибо! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...