我正在构建PHP类来执行特定任务和一般任务,但我不确定我是否正确执行。
class Cat
{
public function cuddleNonStrayCat() {
$this->washHands();
$this->cuddleCat();
}
public function cuddleStrayCat() {
$this->cuddleCat();
$this->washHands();
$this->getRabiesVaccine();
}
public function getRabiesVaccine() { ... }
public function cuddleCat() { ... }
public function washHands() { ... }
}
$cat = new Cat;
# Example 1 - Very compact to do a specialized thing:
$cat->cuddleStrayCat();
# Example 2 - Do the specialization outside of the class:
$cat->cuddleCat();
$cat->washHands();
$cat->getRabiesVaccine();
第一个例子我将专门化(混乱)放在类中,但在外面保持干净。第二个例子是另一种方式。
是一个优先于另一个,还是有其他可能更好的方法来做到这一点?
答案 0 :(得分:2)
为什么“猫”包含了拥抱猫的逻辑?
出于某种原因,你似乎认为,应该尽可能多地在一个类中填充逻辑。那是错的。一个类应该有一个通用目的(这基本上是SRP定义的概念),但是你已经开始在其中添加所有松散相关的内容 - 这是创建“上帝对象”的秘诀“,它包含了应用程序逻辑的每一部分。
这样看:猫为什么要注意如何洗手?