Здравствуйте, Codealot, Вы писали:
C>Публичные методы — вверх. Всё.
C>И это все равно не тот случай.
Различать всё-таки следует понятия:
класс и
модуль:
Класс — может выступать элементом внутренней структуры.
Его публичные методы — вполне возможно это внутренние шестерёнки,
оставленные открытыми только для работы с объектами этого класса его "начальниками" (клиентами).
Никто другой не работает с этим классом. Большинству окружающих даже не важно, что эти методы
public.
В терминологии C++ есть понятие
friend. Иногда я даже пользуюсь этим, нарушая принцыпы ООД.
То есть: публичные методы класса — не факт, что являются входами/выходами всго модуля (или даже подсистемы).
Чего уже НЕ СКАЖЕМ об интерфейсе: здесь методы
именно определяющие взаимодействие модуля с внешним миром.
Они обязаны быть максимально независимыми от внутренней реализации. Простой "публичностью" здесь уже не обойтись.
P.S. Вот поэтому, реализация (даже если и единичная) нашего
модуля ИМХО заслуживает наличия собственного
интерфейса.
Это, казалось бы, усложнение — делает понимание кодов проекта проще и быстрее. Оно экономит силы и время (в том числе даже и
самому автору разработки, когда по воле случая он раскроет свои же коды 5-ти летней давности).