2016-04-22 107 views
0

如果我要在uml图中绘制以下内容,工厂和Validator类之间的关系将如何查看并且是Factory类的MyObject和YourObject类依赖关系?对工厂或创建对象的依赖关系

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