工厂方法模式
来源:互联网 发布:华侨大学hqu网络 编辑:程序博客网 时间:2024/06/09 23:39
简单工厂(静态工厂方法)
//共同接口
interface db{
function conn();
}
//服务端开发,(不知道将会被谁调用)
class dbmysql implements db{
public function conn(){
echo '连接上了mysql';
}
}
class dbsqlite implements db{
public function conn(){
echo '连接上了sqlite';
}
}
//PHP设计模式
class Factory{
public static function createDB($type){
if($type=='mysql'){
return new dbmysql();
}else if($type =='sqlite'){
return new dbsqlite();
}else{
throw new Exception('Error db type');
}
}
}
/**
* 服务端现在不知道有哪些类名了
* 只知道对方开发了一个Factory::createDB的方法
* 方法只允许传递数据库名称
*/
$mysql = Factory::createDB('mysql');
$mysql->conn();
$sqlite = Factory::createDB('sqlite');
$sqlite->conn();
工厂方法模式
//共同接口
interface db{function conn();
}
interface Factory{
function createDB();
}
//服务端开发,(不知道将会被谁调用)
class dbmysql implements db{
public function conn(){
echo '连接上了mysql';
}
}
class dbsqlite implements db{
public function conn(){
echo '连接上了sqlite';
}
}
class mysqlFactory implements Factory{
public function createDB(){
return new dbmysql();
}
}
class sqliteFactory implements Factory{
public function createDB(){
return new dbsqlite();
}
}
//客户端开始
$fact = new mysqlFactory();
$db = $fact->createDB();
$db->conn();
$fact = new sqliteFactory();
$db = $fact->createDB();
$db->conn();
//服务器端添加oracle类,对前面的数据不发生修改
class dboracle implements db{
public function conn(){
echo '连接上了oracle';
}
}
class oracleFactory implements Factory
{
public function createDB()
{
return new dboracle();
}
}
$fact = new oracleFactory();
$db = $fact->createDB();
$db->conn();
0 0
- 工厂模式 -- 工厂方法
- 工厂模式-工厂方法
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式---工厂方法模式
- 【模式】工厂方法模式
- 工厂方法,抽象工厂模式
- C#工厂模式-工厂方法
- 工厂模式 和工厂方法
- 工厂模式-C-工厂方法
- 工厂模式以及工厂方法
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂方法、抽象工厂模式
- 工厂模式(简单工厂、工厂方法)
- 简单工厂|工厂方法|抽象工厂模式
- 设计模式-工厂模式(简单工厂模式+工厂方法模式)
- poj2965_The Pilots Brothers' refrigerator(bfs)
- 数据结构和算法(Java版本)
- leetcode-204-Count Primes
- graphm.h
- 引用调用的用法
- 工厂方法模式
- 总结1
- leetcode 生成杨辉三角形, 118 119 Pascal's Triangle 1,2
- hdu 3722Card Game(KM匹配求环)
- 枚举变量的使用
- sublime text 3搭建Python编程环境步骤
- JVM java对象引用强度
- JAVA随机数之多种方法从给定范围内随机N个不重复数
- 关于sharePreferences的用法。。。。