Здравствуйте, AlexGin, Вы писали:
AG>Конечно же, можно было обойтись и без интерфейса, однако так красивее и понятнее. AG>Кроме того, имеется заложенная база — как для развития (новые типы узлов), AG>так и для тестирования основы нашего проекта.
не просто "красивее", но и безопасней
1. контракт зафиксирован == клиенты могут начать разработку до того как будет закончена имплементация. клиенты могут писать юнит-тесты мокируя объект
2. имплементация спрятана от клиентов, что не позволяет особо продвинутым все сломать залазя туда своими кривыми руками
3. никто от балды не может добавить "полезный" метод в интерфейс
4. можно заменить реализацию и использовать две параллельно
5. интерфейс вообще можно отделить в отдельную либу и отправить на сторону клиента(например если мы пишем сетевые сервисы)