Php 构造函数为空的无状态类和静态类之间有什么区别?
假设我必须创建一个类,它接受一些文本,进行一些处理并返回它。。。没有依赖关系,并且它是一个无状态类 我想知道,创建一个没有构造函数的无状态类还是创建一个静态类更好(在php中,它只是静态方法) 像这样的课程:Php 构造函数为空的无状态类和静态类之间有什么区别?,php,oop,static-methods,stateless,Php,Oop,Static Methods,Stateless,假设我必须创建一个类,它接受一些文本,进行一些处理并返回它。。。没有依赖关系,并且它是一个无状态类 我想知道,创建一个没有构造函数的无状态类还是创建一个静态类更好(在php中,它只是静态方法) 像这样的课程: class ClassName { public function processText($text) { // Some code $text = $this->moreProcessing($text); r
class ClassName
{
public function processText($text)
{
// Some code
$text = $this->moreProcessing($text);
return $text;
}
protected function moreProcessing($text)
{
return $text;
}
}
这是:
class ClassName
{
public static function processText($text)
{
// Some code
$text = static::moreProcessing($text);
return $text;
}
protected static function moreProcessing($text)
{
return $text;
}
}
我知道将依赖项注入到使用这些类的类中会更好,但假设我不会进行依赖项注入
我的问题主要是,为上面的简单示例创建静态类是否更好?实际上,您不会看到任何区别 这只体现在语法和构造函数自动执行内容的能力上,尽管您仍然需要创建实例来调用构造函数,在这种情况下,调用一些等效的
静态
成员函数并不遥远
但是,非静态成员函数应该会影响内部状态,因此,如果没有状态,静态
成员函数似乎更为传统,对类的用户来说也不会那么令人惊讶
不过,最好的方法是将函数固定在名称空间中。类用于数据和在该数据上操作的函数。。。即使是
静态的
类。问题是,为什么会有一个没有任何状态的类。这不是一个类,它是一个函数容器…必须阅读:受保护的静态函数
和受保护的函数
之间的区别是什么?静态方法中不存在多态行为,这就是it@EricShaefer你说得对,只是我不想在一个主要负责DB操作的类中包含只清理文本的方法。全局状态和class::functionNamspace
@djay:The之间没有区别。OP.Has。不,州政府。