Я работаю над простым проектом в трехслойной архитектуре, и в настоящее время у меня есть этот интерфейс в пользовательском интерфейсе:
public interface IDisplay
{
void PrintMessage(string msg);
string GetInput();
void ClearDisplay();
void WaitForUser();
}
От этого что-то вроде ConsoleDisplay унаследует.
Затем на моем BL я вводю в c тип дисплея (используя IDisplay) и использую его функции для печати меню, получения пользовательского ввода и проверки его (все в BL ).
Я имею в виду, это работает, но мне это не кажется правильным. Предполагается, что пользовательский интерфейс имеет доступ к функциям BL, но в моем BL необходимо непрерывное взаимодействие ввода, проверка его и печать сообщения пользователю о каждом вводе. Это будет нарушать OCP, если я сделаю функцию для каждого случая
Я был бы рад, если бы вы могли посоветовать мне / отослать меня к хорошим источникам, которые объясняют эту проблему.
Спасибо! :)