PHP 工厂方法模式

2017-09-13 20:35:31来源:CSDN作者:wzyyc人点击

分享
  • 工厂方法模式
<?    interface Messager{        public function send();    }    class Email implements Messager{        public function send(){            echo "send email";        }    }    class SMS implements Messager{        public function send(){            echo "send SMS";        }    }    class MessagerFactory{        public function produceEmail(){            return new Email();        }        public function produceSMS(){            return new SMS();        }    }    $myMessagerFactory = new MessagerFactory();    $myMessager = $myMessagerFactory->produceEmail();    $myMessager->send();
  • 抽象工厂模式
    如果现在想要生产一种新的类就需要去修改工厂方法。抽象工厂就是将工厂方法也抽象成接口,每次如要增加一个类就对应的增加一种工厂对象。
<?    interface Messager{        public function send();    }    class Email implements Messager{        public function send(){            echo "send email";        }    }    class SMS implements Messager{        public function send(){            echo "send SMS";        }    }    interface MessagerFactory{        public function produce();    }    class EmailFactory implements MessagerFactory{        public function produce(){            return new Email();        }    }    class SMSFactory implements MessagerFactory{        public function produce(){            return new SMS();        }    }    /*新增一种Message*/    class Wechat implements Messager{        public function send(){            echo "send Wechat";        }    }    class WechatFactory implements MessagerFactory{        public function produce(){            return new Wechat();        }    }    $myMessagerFactory = new WechatFactory();    $myMessager = $myMessagerFactory->produce();    $myMessager->send();

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台