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

前端之家收集整理的这篇文章主要介绍了设计模式 – 如何在这里避免循环依赖前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法避免循环依赖,除了混合模块,这样的安排(它是一个象棋应用程序)

详细描述:

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

这里是问题:

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

简短的介绍:

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

帮助非常感激.

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

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

猜你在找的设计模式相关文章