gpt4 book ai didi

java - 有趣的 API 模式

转载 作者:搜寻专家 更新时间:2023-10-31 20:23:12 25 4
gpt4 key购买 nike

在研究 Neo4J 源代码时,我注意到他们使用了一种非常有趣的模式来将接口(interface)与实现解耦。有一个Node仅由 NodeProxy 实现的接口(interface)类(class)。 NodeProxy 依次委托(delegate)给 NodeImpl你会认为它也实现了 Node,但它没有。 NodeImpl 具有具有相同签名的相同方法,并且是 Node 的支持实现,但它不实现 Node。我以前使用过代理模式,但会让 NodeImpl 像 NodeProxy 那样实现 Node。关于这种模式带来的优势有什么想法吗?

编辑 1:感谢 Cirkel 的评论,我现在知道它叫做 Bridge pattern主要目标是“将抽象与其实现分离,以便两者可以独立变化”,这很有趣。

最佳答案

如果您更详细地查看 NodeImpl,您会发现那里对应于 Node 方法的方法具有不同的签名 - 它们另外采用 NodeManager 参数。

仅此一项就使他们无法实现 Node 接口(interface)。

NodeProxy 然后维护对 NodeManager 的引用,然后它可以将其传递给 NodeImpl 对象。

关于java - 有趣的 API 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6317877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com