【发布时间】:2013-02-23 19:21:41
【问题描述】:
我想要一个小的 php 模块。该模块将具有纯函数的方法。所以,这只是函数的集合。所有函数都获取一些参数并仅根据输入参数返回结果。
我有一些建议:
1.静态类
PHP 没有真正的静态类,所以我只创建了一个包含所有静态方法的类:
class Some_Module
{
static public function sum($a, $b, $c)
{
return $a+$b+$c;
}
static public function method2($a, $b)
{
return $a-$b+5;
}
}
这样的模块很容易使用:
$x = Some_module::sum(1,2,3);
但是,我听说(有很多关于 SO 的主题),静态是一种不好的做法。
2。单身人士
它不是那么容易使用:
// we should not to forget to get instance
$module_instance = new Some_module;
$x = $module_instance->sum(1,2,3);
不便之处在于,我们现在应该初始化这个模块。 另外,关于 SO 的话题很多,这里解释了为什么 Singleton 在 PHP 中没有用,所以这也是一种不好的做法。
这样的模块使用什么模式?
【问题讨论】:
-
从道听途说中听取建议是最糟糕的做法。 - 您的示例太抽象,无法推荐一种实现。然而,显然将输入输出函数放入对象中并不是很明智。虽然它们应该是普通函数,但静态类是功能分组的公认解决方法(仅此而已)。特别是如果您无法忍受命名空间语法替代方案。
标签: php design-patterns module