组合实体模式 - Composite Entity Pattern
说明
组合实体模式用在持久化机制中。当更新一个组合实体时,内部依赖对象也会自动更新。
理解
各个细颗粒对象组合成一个粗颗粒对象,细颗粒对象和粗颗粒对象又可以组合成组合实体。
组合实体的内部状态变化也会引起各个颗粒的状态变化。
通常使用在对象持久化中。
结构中包含的角色
- 组合实体(Composite Entity)
- 粗粒度对象(Coarse-Grained Object)
- 依赖对象(Dependent Object)
最小可表达代码
class Dependent{
private $data;
public function setData(String $data)
{
$this->data = $data;
}
public function getData()
{
return $this->data;
}
}
class CoarseGrained{
private $dependent;
public function __construct()
{
$this->dependent = new Dependent();
}
public function setData(String $data)
{
$this->dependent->setData($data);
}
public function getData()
{
return $this->dependent->getData();
}
}
class CompositeEntity{
private $coarseGrained;
public function __construct()
{
$this->coarseGrained = new CoarseGrained();
}
public function setData(String $data)
{
$this->coarseGrained->setData($data);
}
public function getData()
{
return $this->coarseGrained->getData();
}
}
$compositeEntity = new CompositeEntity();
$compositeEntity->setData("Test");
echo $compositeEntity->getData();
实际应用场景
- EJB 持久化