tet*_*eto 5 java api design-patterns
在研究Neo4J源代码时,我注意到它们使用了一个非常有趣的模式来将接口与实现分离.有一个节点是仅由实现的接口NodeProxy类.然后NodeProxy委托给你认为也实现Node的NodeImpl,但它没有.NodeImpl具有相同签名的相同方法,并且是Node的后备实现,但它不实现Node.我以前使用过代理模式但是会让NodeImpl像NodeProxy那样实现Node.关于这种模式带来的好处的任何想法?
编辑1:感谢Cirkel的评论,我现在知道它被称为Bridge模式,主要目标是"将抽象与其实现分离,以便两者可以独立变化",这很有趣.
它的最终目的是迫使您通过 NodeProxy 而不是直接使用 NodeImpl。我对 Neo4J 不太熟悉,无法解释为什么在这种情况下这样做是有利的。也许 NodeProxy 具有 NodeImpl 所没有的附加行为。