OOP原则:哪个更好?与自身一起操作,还是与其他对象一起操作?

时间:2015-12-13 16:48:12

标签: php oop

抱歉,我真的不能更好地描述它。这是一个图形系统:

class Point
{
    private $x, $y, $color;

    public function draw(Graphic $graphicEngine)
    {
        $graphicEngine->setPixel ($this->x, $this->y, $this->color);
    }
}

class Graphic
{
    private $points; // array of Point

    public function draw()
    {
        foreach ($this->points as $point)
        {
            $point->draw($this);
        }
    }
}
我的同事说不好。它有一个循环引用(Point知道Graphic,反之亦然)。他说"不是主题(Point)自己做某事,但是(Point)主题发生了一些事情,而Point应该是一个独立的生活事情。他的解决方案:

class Point
{
    public $x, $y, $color;
}

class Graphic
{
    private $points; // array of Point

    public function draw()
    {
        foreach ($this->points as $point)
        {
            $this->setPixel ($point->x, $point->y, $point->color);
        }
    }
}

它分开了,好的。但在我看来,有一个Point。它怎么能吸引自己呢?

0 个答案:

没有答案