gpt4 book ai didi

php - 我可以为我的记录器使用静态类吗?

转载 作者:可可西里 更新时间:2023-11-01 12:28:02 25 4
gpt4 key购买 nike

最近有人告诉我静态类/方法是邪恶的。

以我的类 Logger 为例:

class Logger{
private static $logs = array();
public static function add($msg){
self::$logs[]=$msg;
}

public static function echo(){
print_r(self::$logs);
}
}

我可以像这样在我的应用程序中随时使用:

Logger::add('My log 1');

但是阅读这个开发者:

那个Logger类好像不太好。

那么:我可以静态地使用它还是应该不惜一切代价避免它?

最佳答案

日志类是个异常(exception)。

由于它们很少包含太多逻辑,因此您不会有相同的测试问题。

日志记录是使用静态类的好地方的完美示例。

想想你的替代方案:

  • 记录对象的全局实例?
  • 单例日志对象?
  • 将日志记录对象传递给每个方法/类(通过构造函数)?

上面的方法比使用 static 进行日志记录要糟糕得多。

关于php - 我可以为我的记录器使用静态类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6024363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com