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

设计模式 – 类之间的循环依赖关系

发布时间:2020-12-14 04:48:16 所属栏目:百科 来源:网络整理
导读:我遇到两个类之间依赖关系的麻烦. 问题如下: 我有两个类,Timestamp和Exception.异常是抽象的,所有可能的异常都来自这个抽象类. 每个异常都有一个时间戳来告诉抛出异常的时间.所以异常需要包括(在我使用它的语言中称为import)时间戳类. 但是,如果使用时间戳
我遇到两个类之间依赖关系的麻烦.
问题如下:

我有两个类,Timestamp和Exception.异常是抽象的,所有可能的异常都来自这个抽象类.
每个异常都有一个时间戳来告诉抛出异常的时间.所以异常需要包括(在我使用它的语言中称为import)时间戳类.
但是,如果使用时间戳错误,则会发生错误,从而抛出异常.因此,timestamp类必须导入异常类.

而且还有我的循环依赖.
现在我的实际问题是(这就是为什么它独立于语言):在这种情况下,为避免循环依赖,什么是正确的设计?我无法解决这个问题,因为我无法找到解决办法让这些类像现在一样独立,但没有循环依赖.

解决方法

我放弃了整个“Exception-has-timestamp-property”的想法.例外情况应该表明特殊行为,而不是其他.也许你想做一些伐木?记录器跟踪时间戳并将它们与适当的异常配对更有意义.

问问自己异常的工作是什么.显然,一个例外的工作就是被抛出.这取决于何时被抛出?不.异常是否关心这一点?不.还有其他事情吗?是的,异常记录器.但是,由于记录器是关心时间戳的人,因此记录器也应该获取这些时间戳,并对它们进行处理.毕竟,这是其工作的一部分.而且,在适当的设计中,记录器不会将部分工作外包给异常.

循环依赖解决了.

(编辑:李大同)

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

    推荐文章
      热点阅读