極簡架構模式-組合實體模式

long2ge發表於2021-12-18

說明

  組合實體模式用在持久化機制中。當更新一個組合實體時,內部依賴物件也會自動更新。

理解

  各個細顆粒物件組合成一個粗顆粒物件,細顆粒物件和粗顆粒物件又可以組合成組合實體。
  組合實體的內部狀態變化也會引起各個顆粒的狀態變化。
  通常使用在物件持久化中。

結構中包含的角色

  1. 組合實體(Composite Entity)
  2. 粗粒度物件(Coarse-Grained Object)
  3. 依賴物件(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();

實際應用場景

  1. EJB 持久化
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Long2Ge

相關文章