加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

设计模式 – 如何在这里避免循环依赖

发布时间:2020-12-14 00:48:49 所属栏目:百科 来源:网络整理
导读:有没有办法避免循环依赖,除了混合模块,这样的安排(它是一个象棋应用程序) 详细描述: 有Gui模块导入ChessWidget模块; ChessWidget只是包装ChessWorld模块并导入CellButton; CellButton模块导入模块Cell; ChessWorld模块进口板(代表它)和玩家(通知他们并取得
有没有办法避免循环依赖,除了混合模块,这样的安排(它是一个象棋应用程序)

详细描述:

有Gui模块导入ChessWidget模块;
> ChessWidget只是包装ChessWorld模块并导入CellButton;
> CellButton模块导入模块Cell;
> ChessWorld模块进口板(代表它)和玩家(通知他们并取得他们的动作);
>板模块进口模块件;
> Piece模块进口模块Player;

这里是问题:

玩家模块需要了解其他玩家和棋盘,从而导入ChessWorld!

简短的介绍:

世界模块需要了解玩家模块(甚至由板/板块间接),玩家需要了解世界.

帮助非常感激.

PS:不是因为我不能使用循环依赖,而是因为它们是邪恶的.

按照 Dependency inversion principle:介绍ChessWorld实现的接口,Player依赖哪个Player和/或一个Player实现哪个Piece依赖(根据依赖关系的细节,这两者或两者可能是合适的).这通常与 Dependency Injection一起,如果依赖者需要动态实例化一些受信任的实例,则使用 Factory DP.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读