如何摆脱这种循环依赖?

时间:2011-09-17 06:50:57

标签: php circular-dependency

我目前正在编写一些类来处理PHP Web应用程序中的本地化。

课程是:

  • 区域设置 - 处理设置和获取用户的区域设置,时区,语言。
  • LocaleFormat - 处理格式化日期,归类,货币格式等。
  • 时区 - 负责编制国家/地区的时区列表以及与时区相关的其他功能。
  • LocaleData - 获取区域设置数据,例如地址格式和邮政编码正则表达式等内容。

整个应用程序正常运行,但我需要向Timezone添加更多内容。

这会导致此问题: Locale需要Timezone的方法,这需要LocaleData的方法,这需要Locale的方法。

如何打破这种循环依赖?我应该把课程分成小块吗?有没有处理这个问题的模式?

干杯:)

1 个答案:

答案 0 :(得分:2)

如果您只是从其他类调用方法,则首先加载所有类,然后可以在类之间调用方法。不要在类文件中执行任何初始化,这应该在“包含”文件的单独“加载器”文件中完成,然后调用初始化。

如果基于扩展其他类的类获得循环依赖,那么您需要重新考虑整个设置。