最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

介绍php设计模式中的工厂模式

来源:懂视网 责编:小采 时间:2020-11-27 19:02:50
文档

介绍php设计模式中的工厂模式

介绍php设计模式中的工厂模式:问题 你如何能轻松方便地建立这么 复杂 的对象即操作中不需要粘贴复制呢 解决方法 建立一个工厂(一个函数或一个类方法)来制造新的对象。为了理解工厂的用处, 试想以下的不同之处…… 代码: 代码如下:$connection =& new MySqlConnect
推荐度:
导读介绍php设计模式中的工厂模式:问题 你如何能轻松方便地建立这么 复杂 的对象即操作中不需要粘贴复制呢 解决方法 建立一个工厂(一个函数或一个类方法)来制造新的对象。为了理解工厂的用处, 试想以下的不同之处…… 代码: 代码如下:$connection =& new MySqlConnect

问题

你如何能轻松方便地建立这么" 复杂 " 的对象即操作中不需要粘贴复制呢?

解决方法

建立一个工厂(一个函数或一个类方法)来制造新的对象。为了理解工厂的用处, 试想以下的不同之处……

代码:

代码如下:
$connection =& new MySqlConnection($user, $password, $database); 

……使你的代码可扩展和更简洁……

代码如下:
$connection =& create_connection(); 

后者的代码片断集中在和数据库连接的create_connect()工厂上 ,就像刚才说的一样,使创造数据库连接的过程成为一个简单的操作—就像new操作一样。工厂模式的优点就在创建对象上。 它的任务就是把对象的创建过程都封装起来,然后返回一个所需要的新类。

想改变对象的结构和建立对象的方式吗? 你只需选择对象工厂,对代码的改变只需要一次就够了。( 工厂模式的功能是如此强大, 它处于是应用的底层, 所以在许多其余的复杂模式和应用中它会不停地出现。)

样本代码

工厂模式封装了对象的建立过程。 你可以在对象本身创建对象工厂或者是一个额外的工厂类——这要看你具体的应用。让我们看一个工厂对象的例子。

我们发现下面代码中,数据库连接的那部分屡次出现:

代码如下:
// PHP4 
class Product { 
function getList() { $db =& new MysqlConnection(DB_USER, DB_PW, DB_NAME); 
//... 

function getByName($name) { $db =& new MysqlConnection(DB_USER, DB_PW, DB_NAME); 
//... 

//... 

为什么这样做不好? 数据库连接的参数出现的地方太多了,当你把这些参数设成常量,意味着你统一定义并对他们进行赋值,显然这种做法不是很妥当:

你可以轻松地改变连接数据库的参数,但你不能增加或改变这些参数地顺序,除非你把所有连接代码都改了。
你不能轻松的实例化一个新类去连接另一种数据库,比如说PostgresqlConnection。
这样很难单独测试和证实连接对象的状态。
使用工厂设计模式,代码将得到很大的改进:

代码如下:
class Product { 
function getList() { 
$db =& $this->_getConnection(); 
//... 

function &_getConnection() { 
return new MysqlConnection(DB_USER, DB_PW, DB_NAME); 


先前的类中存在很多调用new MysqlConnection(DB_USER,  DB_PW,  DB_NAME)的方法,现在都被集中到的_getConnection()方法上。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

介绍php设计模式中的工厂模式

介绍php设计模式中的工厂模式:问题 你如何能轻松方便地建立这么 复杂 的对象即操作中不需要粘贴复制呢 解决方法 建立一个工厂(一个函数或一个类方法)来制造新的对象。为了理解工厂的用处, 试想以下的不同之处…… 代码: 代码如下:$connection =& new MySqlConnect
推荐度:
标签: 介绍 脚本 简介
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top