学说策略模式

时间:2014-07-01 21:40:08

标签: design-patterns doctrine-orm mapping

我正在尝试创建以下结构

class bot
{
    protected $name;
    protected $type;

    public function __construct($name, IBotType $type)
    {
        $this->name = $name;
        $this->type = $type;
    }

    public function getProduct()
    {
        return $this->type->produceProduct();
    }
}


class botType1 implements IBotType
{

    public function produceProduct()
    {
        return 'Donut';
    }
}

class botType2 implements IBotType
{

    public function produceProduct()
    {
        return 'Coffee';
    }
}

唯一一个实体类是bot类,类型将有一些基本配置,如名称等,一些逻辑ex botType1将能够生产甜甜圈,botType2将生产咖啡等。

主要问题是如何使用doctrine存储该信息,以及从数据库加载对象以创建正确的bot类型。

我希望这是有道理的!

请注意,我不想将每种类型存储到数据库中,我希望有一个php类,我将所有控制逻辑存储在那里。

(在实际应用程序中有100个各种机器人类型的集合,我们通过它们调用getProducts以创建产品等,希望上面的例子有意义!)

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

我花了一些时间,但我相信使用下面的文章我应该能够完全按照我的要求形式: strategy pattern cookbookdecorator pattern cookbook

玩得开心!