当前位置:Gxlcms > PHP教程 > php中的抽象工厂模式

php中的抽象工厂模式

时间:2021-07-01 10:21:17 帮助过:6人阅读

抽象工厂模式
其与工厂方法模式的区别在于抽象工厂是先创建工厂,然后工厂在创建商品(实例);

定义一个创建对象的接口,让子类决定哪个类实例化。 他可以解决简单工厂模式中的封闭开放原则问题;

  1. // 产品(数据库)标准
  2. interface DbInterface{
  3. public function connect(Array $params=array());
  4. public function query($sql);
  5. public function insert($table, $record);
  6. public function update($table, $record, $where);
  7. public function delete($table, $where);
  8. }
  9. // 具体产品(Mysql)
  10. class MysqlDb implements DbInterface(){
  11. public function connect(Array $params=array());
  12. public function query($sql){}
  13. public function insert($table, $record){}
  14. public function update($table, $record, $where){}
  15. public function delete($table, $where){}
  16. }
  17. class OracalDb implements DbInterface(){
  18. public function connect(Array $params=array()){}
  19. public function query($sql){}
  20. public function insert($table, $record){}
  21. public function update($table, $record, $where){}
  22. public function delete($table, $where){}
  23. }
  24. // 构造工厂
  25. interface CreateFactory(){
  26. function createDB(); //分为 内敛的和外向的
  27. }
  28. class FactoryMysql implements CreateFactory{
  29. function createDB() {
  30. return new MysqlDb();
  31. }
  32. }
  33. class FactoryOracle implements CreateFactory{
  34. function createDB() {
  35. return new OracalDb();
  36. }
  37. }
  38. (1) 如果想使用mysql
  39. $db = new FactoryMysql()->createDB(); //

以上就介绍了php中的抽象工厂模式,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

人气教程排行