### **PHP常见的设计模式** 更多设计模式详解请访问下面链接 https://mp.weixin.qq.com/mp/homepage?__biz=MzIxODQyNTU1MA==&hid=1&sn=ae095c1e64245e4d0c59f1b9a3f45315&scene=1&devicetype=android-29&version=28001339&lang=zh_CN&nettype=WIFI&ascene=7&session_us=gh_fa1c350eedb0&wx_header=3 #### 1.工厂模式 > 工厂模式应该是最常见的一种设计模式 那什么是工厂模式呢 下面是我自己的理解 > 原因: 正常情况下 我们创建一个类 每次用的时候都要使用关键字 new (实例化)获使用静态方法 :: 等 但是如果类很多 每次都需要new(实例化)不同的类 为了减轻负担 所以我们有了工厂模式 > 方法 : 换言之 就是把所有的使用类 都放到一个工厂类中在工厂类的方法中调用使用类 通过实例化工厂类的方法实现工厂 > 意义:使用工厂模式的好处是,如果你想要更改所实例化的类名等,则只需更改该工厂方法内容即可,不需逐一寻找代码中具体实例化的地方(new处)修改了。为系统结构提供灵活的动态扩展机制,减少了耦合 **实现代码** ~~~ <?php header('Content-Type:text/html;charset=utf-8'); /** *简单工厂模式(静态工厂方法模式) */ /** * Interface people 人类 */ interface people { public function say(); } /** * Class man 继承people的男人类 */ class man implements people { // 具体实现people的say方法 public function say() { echo '我是男人<br>'; } } /** * Class women 继承people的女人类 */ class women implements people { // 具体实现people的say方法 public function say() { echo '我是女人<br>'; } } /** * Class SimpleFactoty 工厂类 */ class SimpleFactoty { // 简单工厂里的静态方法-用于创建男人对象 static function createMan() { return new man(); } // 简单工厂里的静态方法-用于创建女人对象 static function createWomen() { return new women(); } } /** * 具体调用 */ $man = SimpleFactoty::createMan(); $man->say(); $woman = SimpleFactoty::createWomen(); $woman->say(); ~~~