配置解析器 - 静态与否?

时间:2010-02-20 13:13:31

标签: php static

想象一下这样一种策略,你可能希望解析器有多种格式的配置文件,例如INI,XML和YAML。解析这些将导致公共类的实例说'Config_Data'。

我的想法是,由于解析器具有非常简单的任务,并且没有我能看到的状态,因此最好将其作为静态类实现,因此您可以使用以下内容:

Parser_Ini::parse(...);
Parser_Xml::parse(...);
...

这对我来说并不完全正确,因为这些静态类当然不能实现接口等,但它们似乎很有道理。

我很想知道你对此事的看法:)。

谢谢, 詹姆斯

2 个答案:

答案 0 :(得分:1)

创建静态类有很多缺点,我不会看到你从中获得什么,除了方便的感觉,我觉得这会误导你。

如果您将这些类作为常规实例类来实现,并实现一个接口,您可以随时自由地更改实现。

依赖于解析器的类可以将接口的实现作为参数,从而可以在该类中注入所需的任何解析器类型。

答案 1 :(得分:0)

使用这种方法并不是必须获得任何优势,特别是如果代码的其余部分是面向对象的。它还禁止您使用工厂模式之类的东西来构建解析器。