Здравствуйте, Codealot, Вы писали:
C>Некоторые люди делают для каждого класса по интерфейсу и фабрике чтобы создавать объекты, причем каждый интерфейс реализован ровно в одном классе. C>В этом есть какой-то тайный смысл, или они просто идиоты?
Так иногда делают чтобы отделить интерфейс от реализации. Представьте, что есть очень жирный и большой класс, и это несмотря на то, что у него всего лишь два публичных метода. А теперь задача — найти среди этих тысяч строк реализации одгого класса чего же от него могут хотеть те, кто его используют.
Это становится похоже на поиск иголок в стоге сена — и по времени и по ментальным трудозатратам. Вот тогда иногда и делают отдельный интерфейс, который строго завляет — нужно только 2 таких вот метода.
А тысячи строк реализации — это уже дело второстепенное и совершенно неинтересное, особенно если над проектом работает несколько людей со своими зонами ответственности. Им нырять в чужие тысячи строк очень больно, но беглым взглядом увидеть суть в коротком определении интерфейса — очень легко и понятно.
Это классика подхода под названием "сервисо-ориентированая архитектура".