工厂模式:通过一个工厂类生产对象,工厂类调用自身静态方法生产对象实例。
//简单工厂模式 interface walk { public function walk(); } class person implements walk { public function walk() { echo 'person walk ---'; } } class animal implements walk { public function walk() { echo 'animal walk'; } } class fac { public static function factory($factory) { switch($factory){ case 'person': return new person; case 'animal': return new animal; } } } fac::factory('person')->walk(); fac::factory('animal')->walk();
使用工厂模式好处:易维护,可扩展,比如说一个类,你实例化了多个对象,但突然需求变了,需要改变类,这个时候实例化的对象也需要改变,那就比较麻烦了。而采用工厂模式,只需要对工厂类中的方法改变,也就是只需要改这一个地方,很方便。
https://www.cnblogs.com/mingaixin/p/4324156.html =》 这个链接里三种工厂模式没有明白区别。慢慢理解吧。
工厂模式的讨论:https://segmentfault.com/q/1010000005849224?_ea=935141