下面是工厂的另一种变化,你静态地调用了一个工厂类:
classProduct{
functiongetList(){
$db=&DbConnectionBroker::getConnection();
//...
}
}
classDbConnectionBroker{
function&getConnection(){
returnnewMysqlConnection(DB_USER,DB_PW,DB_NAME);
}
}
这里DbConnectionBroker::getConnection()产生的效果和前面的一样,但这样却很有好处:我们不必在每个需要连接数据库的类中加入调用newMysqlConnection(DB_USER
,DB_PW,DB_NAME)的方法
。 当然另一种变化就是引用一个外部工厂对象的资源
,和这个对象定义了数据库连接的参数:
classProduct{
var$_db_maker;
functionsetDbFactory(&$connection_factory){
$this->_db_maker=&$connection_factory;
}
functiongetList(){
$db=&$this->_db_maker->getConnection();
//...
}
}
最后,一个工厂可以用一个函数合理的组织,然后实现:
function&make_db_conn(){
returnnewMysqlConnection(DB_USER,DB_PW,DB_NAME);
}
classProduct{
functiongetList(){
$bar=&make_db_conn();
//...
}
}
希望这篇
php教程:php设计模式介绍之工厂模式(2)的文章能够对您有所帮助,如果您觉得这篇网站维护教程有用的话,别忘了推荐给您的朋友哦!如果您有好的经验方法,不妨拿出来和大家一起分享:假如每个人都拿出一个经验,那么我们都将额外的获取一堆他人的经验。
请记住本站永久域名:(黑客防线网安服务器维护方案维护基地)Www.Rongsen.Com.Cn