如果这个问题已经回答,请告诉我;我只能找到通常的“什么是公共/私人/受保护”的问题!
所以这是我的问题: 我何时使用私有方法?何时使用公共方法创建新类?
示例:
class MyActualWorker {
public function work() {
$this->helperMethod1();
$this->helperMethod2();
}
private function helperMethod1() {
...
}
private function helperMethod2() {
...
}
}
替代:
class MyActualWorker {
public function __construct() {
$this->helperObject = new HelperObject();
}
public function work() {
$this->helperObject->helperMethod1();
$this->helperObject->helperMethod2();
}
}
我何时使用第一个例子,第二个例子? 对我来说,第二个例子的主要优点是UnitTesting非常简单。
我很感激任何答案!
答案 0 :(得分:1)
通常,你使用第一个。
"Delegation Pattern"(使用子对象)是一种很好的方法,可以让你在运行时可以换出不同的方法实现 - 但如果你不需要它,那只是不必要的开销。
另一种常见的情况是我称之为“库方法”,即没有绑定到任何对象但是无状态的方法,只是执行一些计算。这些可以被删除public static
并移动到抽象类。你不会为那种关系创建对象(只是使用静态方法的类),所以它与你的例子完全不同。