php - 如何摆脱这种循环依赖?

标签 php circular-dependency

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

类是:

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

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

这导致了这个问题: Locale 需要 Timezone 的方法,而 Timezone 需要 LocaleData 的方法,而 LocaleData 需要 Locale 的方法。

如何打破这种循环依赖?我应该把我的类(class)分解成更小的部分吗?有什么模式可以处理这个问题吗?

干杯:)

最佳答案

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

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

关于php - 如何摆脱这种循环依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7453030/

相关文章:

php - Laravel 4 准备好的语句

php 从 mysql 数据库进行查询时出现错误,如 'where clause' 中的未知列

php - 如何在 PHP 中的菜单项之间添加分隔符但不在末尾

C++模板类型循环和指向模板实例的非模板指针

C循环依赖

C++。 Child 继承自 Parent 并作为 Parent 属性包含在内

java - 循环依赖、递归类

php - 计算每个变量在表中出现的次数

php - 构造函数返回一个对象,而不是一个值

c++ - 在 C++ 中避免类定义中的循环依赖