我正在尝试使用一个类声明一组约20个公共函数是否合适:
if (!class_exists('example')) {
class example {
# Declare ~20 functions (methods), all of
# which are public. (There's nothing else
# in the class.)
public static function one() { /* ... */ }
public static function two() { /* ... */ }
# ...
} # class
}
使方法可用:
example::one();
example::two();
上述方法 vs 有哪些优点/缺点。只是这样做:
if (!defined('EXAMPLE_LOADED')) {
define('EXAMPLE_LOADED', true);
function example_one() { /* ... */ }
function example_two() { /* ... */ }
# ...
}
使功能可用:
example_one();
example_two();
编辑 - 相关的效果测试:
答案 0 :(得分:3)
以下是有关此主题的链接。
When to use static vs instantiated classes
我还要说我以前将类似的函数分组为纯静态类。我喜欢它给出的语法糖。
format::usaPhone( $val );
format::usaZip( $val );
date::convertTz( $date, $tz1, $tz2 );
这样的东西。我建议你务必这样做,并确保你最终做的事情满足两件事。
这可能听起来像是一个显而易见的陈述,但它是一个很好的提醒,当一个简单的解决方案出现时,不要过度思考。
答案 1 :(得分:1)
oop和功能程序方法之间的差异就是开销。
绝对是好的,他们可以对您的代码进行分组,更易于管理,并且它具有的主要功能使其理想的是您的代码将变得可重用,使其更加灵活,这就是为什么这种方法更适合大型项目或系统。 oop的缺点是它在开销方面更加昂贵,并且与功能方法相比甚至会更慢,尽管功能方法的性能要快得多,但它不会像oop那样可以重复使用,但它将全部依赖在你身上。
我给你的建议是,如果它真的是一个大项目你的处理然后oop是非常好的,但是如果你认为根本没有必要在oop上做那么去功能或者如果可能你也可以做程序比2更快的表现,但正如我所说,这一切都取决于你的策略。
答案 2 :(得分:0)
第一种情况增加抽象级别并帮助您分组(通常)辅助方法。
最佳做法是将您的示例类移到单独的文件中,然后在需要时进行制作
require_once('./path/to/example.class.php');