标签:
提到的最多, 用途也最广. 简单说就是: 定义一个用户创建对象的接口.
简单工厂模式:
①抽象基类:类中定义抽象一些方法,用以在子类中实现
②继承自抽象基类的子类:实现基类中的抽象方法
③工厂类:用以实例化对象
只要是可以根据不同的参数生成不同的类实例,那么就符合工厂模式的设计思想。
//这样子做很方便扩展。我们在直接链接数据库的时候,不是使用代码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