在课堂上应该做多少专业化?

时间:2017-10-25 21:17:26

标签: php oop

我正在构建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();

第一个例子我将专门化(混乱)放在类中,但在外面保持干净。第二个例子是另一种方式。

是一个优先于另一个,还是有其他可能更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:2)

为什么“猫”包含了拥抱猫的逻辑?

出于某种原因,你似乎认为,应该尽可能多地在一个类中填充逻辑。那是错的。一个类应该有一个通用目的(这基本上是SRP定义的概念),但是你已经开始在其中添加所有松散相关的内容 - 这是创建“上帝对象”的秘诀“,它包含了应用程序逻辑的每一部分。

这样看:猫为什么要注意如何洗手?