interface DB{ function connect(); } class Mysql implements DB{ public function connect(){ echo 'mysql 连接成功'; } } class SqLit implements DB{ public function connect(){ echo 'sqlit 连接成功'; } } //工厂方法模式 //工厂接口 interface Factory{ function getDB(); } class MysqlFactory implements Factory{ public function getDB(){ return new Mysql(); } } class SqlitFactory implements Factory{ public function getDB(){ return new SqLit(); } } $db = new MysqlFactory(); $db->getDB()->connect(); $db = new MysqlFactory(); $db->getDB()->connect(); //思考,觉得还可以在封装一个超级工厂,主要生产全局使用的对象包括db,这样如果在扩展数据库只需要扩展一个子类便可以直接使用原有的 //超级工厂方法获得; class BigFactory{ public static function getDB($name = 'mysql'){ $db = $name.'Factory'; return $db(); } //..... }
php 设计模式(工厂方法模式)
最新推荐文章于 2024-06-03 14:44:56 发布