Я заметил, что некоторым программистам нравится создавать интерфейсы практически для всех своих классов. Мне нравятся интерфейсы для определенных вещей (например, проверка того, поддерживает ли объект определенное поведение, а затем имеет интерфейс для такого поведения), но чрезмерное использование интерфейсов иногда может раздувать код. Когда я объявляю методы или свойства общедоступными, я бы ожидал, что люди просто будут использовать мои конкретные классы, и я действительно не понимаю необходимость создавать интерфейсы поверх этого.Интерфейсы vs Public Class Members
Хотелось бы услышать ваше мнение об интерфейсах. Когда вы используете их и для каких целей?
спасибо.
Возможный дубликат [Если вы всегда используете код для интерфейсов в Java] (http://stackoverflow.com/questions/3194278/should-you-always-code-to-interfaces-in-java) –
Практически весь дизайн ООП шаблоны основаны на абстракции. Взгляните на эти примеры шаблонов проектирования на основе Java, они практически все берут и/или возвращают абстрактный класс (или интерфейс). [Примеры реальных образцов шаблонов дизайна GoF в Java] (http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns/2707195#2707195). Загляните немного, и вы начнете понимать, насколько сильная абстракция * на самом деле есть и как часто вы используете ее в реальном мире, чего вы никогда не ожидали бы, как раньше. – BalusC
Я рекомендую искать «интерфейсы», возможно, в сочетании с «дизайном» - на эту тему пролилось много виртуальных чернил. См. Также [Лучше всего извлекать интерфейс для каждого класса?] (Http://stackoverflow.com/questions/3036749/is-it-the-best-practice-to-extract-an-interface-for- каждый класс), среди прочих. –