說明
組合實體模式用在持久化機制中。當更新一個組合實體時,內部依賴物件也會自動更新。
理解
各個細顆粒物件組合成一個粗顆粒物件,細顆粒物件和粗顆粒物件又可以組合成組合實體。
組合實體的內部狀態變化也會引起各個顆粒的狀態變化。
通常使用在物件持久化中。
結構中包含的角色
- 組合實體(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 持久化
本作品採用《CC 協議》,轉載必須註明作者和本文連結