При изучении исходного кода Neo4J я заметил, что они используют очень интересный шаблон для отделения интерфейса от реализации.Существует интерфейс Node , который реализуется только классом NodeProxy .NodeProxy, в свою очередь, делегирует NodeImpl , который, как вы думаете, тоже реализует Node, но это не так.NodeImpl имеет те же методы с той же сигнатурой и является вспомогательной реализацией Node, но он не реализует Node.Я использовал шаблон прокси раньше, но сделал бы NodeImpl для реализации Node, как это делает NodeProxy.Любые идеи о преимуществах, которые дает этот шаблон?
Редактировать 1: Благодаря комментарию Циркеля я теперь знаю, что он называется Шаблон моста , и основная цель состоит в том, чтобы "отделить абстракцию от его реализации,что оба могут варьироваться независимо друг от друга ", интересно.