abstract ApptEncoder { abstract function encoder(); } class BloggsApptEncoder extends ApptEncoder{ function encoder() { return 'bapp'; } } class BloggsTtdEncoder extends ApptEncoder{ function encoder(){ return 'BloggsTtdEncoder'; } } class BloggsContactEncoder extends ApptEncoder{ function encoder(){ return 'BloggsContactEncoder'; } } abstract class CommsManagers{ abstract function getHeaderText(); abstract function getApptEncoder(); abstract function getTtdEncoder(); abstract function getContactEncoder(); abstract function getFooterText(); } class BlogCommsManager extends CommsManagers{ public function getHeaderText(){ return 'Blog header'; } public function getApptEncoder(){ return new BloggsApptEncoder(); } public function getTtdEncoder(){ return new BloggsTtdEncoder(); } public function getContactEncoder(){ return new BloggsContactEncoder(); } public function getFooterText(){ return 'Blog Text'; }}
改进型
//改进 abstract class CommsManager{ const APPT = 1; const TTD = 2; const CONTACT = 3; abstract function getHeaderText(); abstract function make($flag_info); abstract function getFooter(); } class BlogsCommsManager extends CommsManager{ function getHeaderText(){ return 'Blog header'; } function make($flag_info){ switch($flag_info){ case self::APPT : return new BloggsApptEncoder(); case self::TTD: return new BloggsTtdEncoder(); case self::CONTACT: return new BloggsContactEncoder(); } } function getFooter(){ return 'Blogs Footer'; } }
php 设计模式(抽象工厂)
最新推荐文章于 2023-07-27 18:08:48 发布