идешки все равно дают инфу о том что есть интерфейсом а что нет? Тем более, мода обозначать интерфейсы нарушает принципы инкапсуляции и ООП.
Нас не должно интересовать есть ли наш класс интерфейсом или нет с точки зрения ООП
Затем, чтобы понимать, какую часть поведения Вы обязаны реализовать, а какую можно наследовать.
Кстати, с точки зрения ООП интерфейс как раз не нарушает инкапсуляцию, т.к. декларирует поведение, скрывая реализацию. Интерфейсы практически всегда (я, по крайней мере, не встречал прайвет) предполагают паблик декларирование поведения - это позволяет использовать только требуемое декларированное поведение без понимания конкретной реализации конкретного класса, что, кстати, суть нарушение инкапсуляции, имхо, т.к. требует от нас знания структуры и поведения класса.
Интерфейсы полезно видеть, потому что синтаксически наследование от интерфейса и от класса не отличаются друг от друга в языке, а семантически — отличаются.
Обсуждают сегодня