我目前正在编写一些类来处理 PHP 网络应用程序中的本地化。
类是:
- Locale - 处理设置和获取用户的区域设置、时区、语言。
- LocaleFormat - 处理格式化日期、排序规则、货币格式等。
- 时区 - 处理为国家/地区编制时区列表以及与时区相关的其他功能。
- LocaleData - 获取区域设置数据,例如地址格式和邮政编码正则表达式等内容。
整个应用程序运行正常,但我需要向 Timezone 添加更多内容。
这导致了这个问题: Locale 需要 Timezone 的方法,而 Timezone 需要 LocaleData 的方法,而 LocaleData 需要 Locale 的方法。
如何打破这种循环依赖?我应该把我的类(class)分解成更小的部分吗?有什么模式可以处理这个问题吗?
干杯:)
最佳答案
如果你只是调用其他类的方法,先加载所有的类,然后你就可以在类之间调用方法了。不要在类文件中执行任何初始化,应该在“包含”文件的单独“加载程序”文件中完成,然后调用执行初始化。
如果您获得基于扩展其他类的类的循环依赖,那么您需要重新考虑整个设置。
关于php - 如何摆脱这种循环依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7453030/