NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
~~~ <?php class Button{} class Border{} class MacButton extends Button{} class WinButton extends Button{} class MacBorder extends Border{} class WinBorder extends Border{} interface AbstractFactory{ public function createButton(); public function createBorder(); } class MacFactory implements AbstractFactory{ public function createButton(){return new MacButton;} public function createBorder(){return new MacBorder;} } class WinFactory implements AbstractFactory{ public function createButton(){return new WinButton;} public function createBorder(){return new WinBorder;} } $mac_obj = new MacFactory(); var_dump($mac_obj->createButton()); var_dump($mac_obj->createBorder()); $win_obj = new WinFactory(); var_dump($win_obj->createButton()); var_dump($win_obj->createBorder()); ~~~ 只是定义公共的方法,具体的类去实现各自的方法 [root@centos6 dp]# php abstract_factory.php object(MacButton)#2 (0) { } object(MacBorder)#2 (0) { } object(WinButton)#3 (0) { } object(WinBorder)#3 (0) { }