2016-04-22 4 views
0

Если бы я должен был нарисовать следующее на диаграмме uml, как бы выглядели отношения между фабрикой и классами Validator, и являются ли зависимости классов MyObject и YourObject класса Factory?Зависимость от фабрики или от созданного объекта

class Factory { 

    public function create($data) { 
     if ($data['type'] === 'myType') { 
      return new MyObject(new ValidatorA()); 
     } else { 
      return new YourObject(new ValidatorB()); 
     } 
    } 
} 

interface Validator{ 
    public function validate(); 
} 

class ValidatorA implements Validator 
{ 
    public function validate() { 
    } 
} 

class ValidatorB implements Validator 
{ 
    public function validate() { 
    } 
} 

class MyObject() { 
    public function __construct(Validator $validator) { 

    } 
} 


class YourObject() { 
    public function __construct(Validator $validator) { 

    } 
} 

ответ

2

Поскольку у вас нет клиента, шаблон завод является неполным и будет выглядеть следующим образом:

enter image description here

Полный завод выглядит следующим образом:

enter image description here

Смежные вопросы