Himik писал(а):
Основы проектирования интерфейсов хорошо описаны в пособиях по объектно-ориентированному программированию. Обычно интерфейс скрывает внутреннюю механику процедур, так что основная кухня находится внутри реализации процедур. Интерфейс же может быть обычным, стандартным.
Не видел такую книгу которая бы хорошо описывала ООП и интерфейсы. Если вам известна такая книга, то с радостью её прочту.
Интерфейс - это описание входных и выходных параметров и протокола взаимодействия с входами и выходами.
Так вот описание протокола как раз и раскрывает устройство метода, его семантику. Но при этом скрывает его реализацию.
Семантика - от греч. "обозначающий". Обозначающий внутренний или глубокий смысл.
Мутация - изменение чего либо.
Видимо вы хотели сказать не про сокрытие, а про мутацию. Сокрытие как раз и позволяет использовать разные реализации при одном интерфейсе. Т.е мутировать классам. Но консольный интерфейс и графический как раз таки разные интерфейсы, а не реализации. И совмещать их не представляется возможным так как отличаются протоколами общения. А вернее шаблоном управления.
Суть в том что используется инвертирования шаблона управления.
Model-View-Controller - контроль внутри шаблона
FrontEnd-Model-BackEnd -в этом шаблоне контроль осуществляется из вне.
Конечно есть и консольные программы которые позволяют рисовать в псевдографике. И они построены по шаблону MVC. Но это пожалуй исключение, чем практика. Да и используют они для взаимодействия с ядром ОС 3-разновидность интерфейса для вывода.
Инверсия управления в программирование настолько частое явление, что порой даже и не замечаешь кто и кем управляет.