标签:
提到的最多, 用途也最广. 简单说就是: 定义一个用户创建对象的接口.
简单工厂模式:
①抽象基类:类中定义抽象一些方法,用以在子类中实现
②继承自抽象基类的子类:实现基类中的抽象方法
③工厂类:用以实例化对象
只要是可以根据不同的参数生成不同的类实例,那么就符合工厂模式的设计思想。
//这样子做很方便扩展。我们在直接链接数据库的时候,不是使用代码new Mysql($host,$username,$password,$dbname)的形式
//而可以动态生成一个连接数据库的实例。可以是mysql,也可以是连接oracle的。
interface db {
function connect();
}
interface Factory {
function createDb();
}
class mysqldb implements db {
public function connect() {
echo ‘连上了mysql‘;
}
}
class sqlite implements db {
public function connect() {
echo ‘连上了sqllist‘;
}
}
class createMysql implements Factory {
public function createDb(){
return new mysqldb();
}
}
class creareLite implements Factory {
public function createDb(){
return new sqlite();
}
}
$fact = new createMysql();
var_dump($fact->createDb()->connect());
这个也不错
http://blog.csdn.net/hguisu/article/details/7505909
标签:
原文地址:http://www.cnblogs.com/derrck/p/4506630.html