PHP工厂模式能解决啥问题,怎样实现
发布时间:2023-05-18 13:48:40 所属栏目:PHP教程 来源:
导读:这篇文章给大家介绍了“PHP工厂模式能解决什么问题,怎样实现”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。
说明
说明
这篇文章给大家介绍了“PHP工厂模式能解决什么问题,怎样实现”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。 说明 1、工厂模式解决的是如何不通过new建立实例对象。 2、有一些方法可以创建目标,而不是new。 如果想改变创建的对象类型,只需要改变工厂,使用这个工厂的所有代码会自动改变。 3、通常与接口一起使用,应用程序不需要知道这些实例化类的具体细节。 只要知道工厂返回的是支持某个接口类别的类就可以轻松使用。 实例 /** * 抽象出一个人的接口 * Interface Person */ interface Person { public function showInfo(); } /** * 一个继承于抽象人接口的学生类 * Class Student */ class Student implements Person { public function showInfo() { echo "这是一个学生 \n"; } } /** * 一个继承于抽象人接口的老师类 * Class Teacher */ class Teacher implements Person { public function showInfo() { echo "这是一个老师 \n"; } } /** * 人类工厂 * Class PersonFactory */ class PersonFactory { public static function factory($person_type) { // 将传入的类型首字母大写 $class_name = ucfirst($person_type); if(class_exists($class_name)){ return new $class_name; }else{ throw new Exception("类:$class_name 不存在",1); } } } // 需要一个学生 $student = PersonFactory::factory('student'); echo $student->showInfo(); // 需要一个老师的时候 $teacher = PersonFactory::factory('teacher'); echo $teacher->showInfo(); (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐