工厂模式解决如何不通过new来创建实例对象的方法
2017-07-21 09:36
204 查看
<?php
// 工厂模式解决如何不通过new来创建实例对象的方法
class mysql{
public function __construct(){echo "mysql";}
}
class oracle{
public function __construct(){echo "oracle";}
}
class Factory{
public static function getObj($type){
switch ($type) {
case 'mysql':
return new mysql();
break;
case 'oracle':
return new oracle();
break;
default:
throw new Exception("no database type");
break;
}
}
}
$obj = Factory::getObj('mysql');
var_dump($obj);
$obj = Factory::getObj('oracle');
var_dump($obj);
?>
// 工厂模式解决如何不通过new来创建实例对象的方法
class mysql{
public function __construct(){echo "mysql";}
}
class oracle{
public function __construct(){echo "oracle";}
}
class Factory{
public static function getObj($type){
switch ($type) {
case 'mysql':
return new mysql();
break;
case 'oracle':
return new oracle();
break;
default:
throw new Exception("no database type");
break;
}
}
}
$obj = Factory::getObj('mysql');
var_dump($obj);
$obj = Factory::getObj('oracle');
var_dump($obj);
?>
相关文章推荐
- 抽象工厂模式:简单工厂模式、工厂方法模式对比;在工厂方法模式中使用反射创建对象实例
- 对象的创建方法一之------工厂模式
- 设计模式:对象创建(原型,单例,简单工厂,工厂方法,抽象工厂,生成器)
- Objective-C对象初始化 、 实例方法和参数 、 类方法 、 工厂方法 、 单例模式
- 实例工厂方法创建对象
- Objective-C对象初始化 、 实例方法和参数 、 类方法 、 工厂方法 、 单例模式
- 为什么不使用工厂模式,以new Class的方式实例化对象并调用方法不利于项目升级的维护
- 创建Bean的三种方式 在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法。实际上,Sprin
- 通过Bean工厂创建bean实例的几种方法
- 如何通过C#.NET中的反射机制来创建C#.NET泛型类的实例,并调用其方法??
- 设计模式深入浅出(一)对象创建——工厂方法,抽象工厂
- 创建对象_工厂方法(Factory Method)模式 与 静态工厂方法
- Java中如果把构造方法也私有化,如何创建对象?Java的单例设计模式——饿汉式和懒汉式区别
- javascript工厂模式和构造函数模式创建对象方法解析
- JavaScript中创建对象的方法:工厂模式,构造函数模式, 原型模式
- 在C++中,为了让某个类只能通过new来创建实例(即如果直接创建对象,编译器将报错),怎样做?
- 83——工厂,实例方法,创建对象(6条)
- 如何通过C#.NET中的反射机制来创建C#.NET泛型类的实例,并调用其方法??
- JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
- 关于“如何做到在一个类内不通过创建另一个类的对象,却调用另一个类的方法”的问题