首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实现松耦合

实现松耦合
EN

Software Engineering用户
提问于 2021-05-04 16:59:51
回答 1查看 124关注 0票数 -2

我的场景涉及以下类:

我有三种类型的Peer来创建一个RegistryType实例,因为它的方法是必需的。Identity类也是如此。为了完成他们的工作,每个PeerType需要0或所有的RegistryType方法。然后通过创建一个Peer实例来运行每个Server实例,该实例通过传递回调来利用Peer定义的方法之一。

我试图实现的是解决PeerType类和RegistryType类之间的紧密耦合。我的想法是定义一个通用的Peer类,每个类型都从该类继承,并使用RegistryType定义依赖关系。

目标语言是Python,所以要么用Peer构造RegistryType,要么用Registry构建。

即使定义了一个新的Peer类来封装RegistryType,我认为这两个类仍然是紧密耦合的,所以(也许)一个解决方案是将一个RegistryType实例传递给Peer类,而不是在它的构造函数中构造它。

我希望收到一些很好的建议。谢谢。

EDIT1:我会尽量说得更具体些。

每个PeerType实现一些作为参数传递给Serverrun方法的逻辑。该方法还依赖于OTT_RPC类,因为它需要callback_ottrpc函数来创建HandshakeServer并完成握手(start_handshake)。

我的第一个问题是,每个对等类型都由一个类Server运行,但是Holder提供了两个应该传递给run方法的不同服务,而Verifier只提供了一个,所以我需要解决这种不一致性。

第二,ServerHandshakeServerOTT_RPC之间的循环依赖关系。

EN

回答 1

Software Engineering用户

发布于 2021-05-04 19:29:41

海伦娜正确的,这是非常抽象的。但是请考虑使用战略模式

在这里,Peer抽象出不同对等类型的知识。只要这是可能的,那么策略模式将实现耦合改进,因为Peer隐藏了PeerType细节。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/426055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档