```addApple(); $this->addPineapple(); } abstract protected function addApple(); abstract protected function addPineapple();}//建立一個子類實現父類的模板內的方法class TF extends Fruit{ protected function addApple() { //產生一個工廠 $this->apple = new AppleFactory(); //調用方法 echo $this->apple->doFactory(); } protected function addPineapple() { $this->pineapple = new PineAppleFactory(); echo $this->pineapple->doFactory(); }}class PineAppleFactory extends Creator{ protected function doFacoryMethod() { $product = new PineApple(); return $product->getAttribute(); }}class PineApple implements Product{ private $mfg; public function getAttribute() { $this->mfg = "pineapple"; return $this->mfg; }}abstract class Creator{ abstract protected function doFacoryMethod(); public function doFactory(){ $mfg = $this->doFacoryMethod(); return $mfg; }}//設定一個產品的介面interface Product{ public function getAttribute();}class AppleFactory extends Creator{ protected function doFacoryMethod() { $product = new Apple(); return $product->getAttribute(); }}class Apple implements Product{ private $mfg; public function getAttribute() { $this->mfg = "apple"; return $this->mfg; }}class Client{ public function __construct() { $qq = new TF(); $qq->templateMethod(); }}$data = new Client();```