工廠設計模式
設計模式(design pattern):是一套反覆被使用、多數人知曉的、經過分類編目的、**設計經驗的總結。
三私一公:
私有的靜態的儲存物件的屬性
私有的構造方法,阻止類外new物件
私有的轉殖方法,阻止類外clone物件
共有的靜態的建立物件的方法
單例設計模式的核心**:
<?php
//單例設計模式的核心**
class
db//私有的轉殖方法:阻止類外clone物件
private
function
__clone()
//公共的靜態的建立物件的方法
public
static
function
getinstance()
//返回物件
return self:
:$obj;}
}//建立資料庫類的物件
$db1
=db:
:getinstance()
;$db2
=db:
:getinstance()
;var_dump
($db1
,$db2
);
<?php
//定義最終的單例的資料庫工具類
class
db//私有的轉殖方法:阻止類外clone物件
private
function
__clone()
//公共的靜態的建立物件的方法
public
static
function
getinstance
($config
=array()
)//返回物件
return self:
:$obj;}
//私有的連線mysql伺服器方法
private
function
connectdb()
}//私有的選擇資料庫的方法
private
function
selectdb()
失敗!"
;die()
;}}//私有的設定字符集
private
function
setcharset()
//公共的執行sql的方法:insert 、update、delete、set、drop等
public
function
exec
($sql
)//返回執行的結果(布林值)
return
mysqli_query
($this
->
link
,$sql);
}//私有的執行sql語句的方法:select
//執行成功返回結果集物件,執行失敗返回false
private
function
query
($sql
)//返回執行的結果(結果集)
return
mysqli_query
($this
->
link
,$sql);
}//公共的獲取單行資料的方法
public
function
fetchone
($sql
,$type=3
)//公共的獲取多行資料的方法
public
function
fetchall
($sql
,$type=3
)//公共的獲取記錄數
public
function
rowcount
($sql
)//公共的析構方法
private
function
__destruct()
}
<?php
//類的 類的自動載入
spl_autoload_register
(function
($classname))
;//建立資料庫類的物件
$arr
=array
('db_host'
=>
'localhost'
,'db_user'
=>
'root'
,'db_pass'
=>'',
'db_name'
=>
'itcast'
,'charset'
=>
'utf8');
$db=db:
:getinstance
($arr
);
<?php
//包含連線資料庫的公共檔案
require_once
("./conn.php");
//獲取多行資料
$sql
="select * from student"
;$arrs
=$db
->
fetchall
($sql);
//獲取記錄數
$records
=$db
->
rowcount
($sql);
?>
shape.class.php
<?php
//定義形狀介面
inte***ce
shape
circle.class.php
<?php
//定義圓形類,並實現形狀介面
class
circle
implements
shape
}
rectangle.class.php
<?php
//定義矩形類,並實現形狀介面
class
rectangle
implements
shape
}
factory.class.php
<?php
//定義形狀工廠類:生產不同形狀物件的工廠
class
factory
}}
<?php
//類的自動載入
spl_autoload_register
(function
($classname))
;//建立矩形物件
$rectangle
=factory:
:getinstance
("rectangle");
$rectangle
->
draw()
;//建立圓形物件
$circle
=factory:
:getinstance
("circle");
$circle
->
draw()
;
php 設計模式 學習筆記
php 有如下幾種設計模式 初聽到設計模式可能讓你覺得很抽象,其實設計模式就是對常見程式設計問題的靈活解決方案。1 工廠模式 factory 他之所以被成為工廠模式是因為他負責 生產 物件,看看下面的例子 class factoryelse 你如何呼叫呢 factorymql factory fac...
PHP設計模式學習筆記
當多個地方需要例項化乙個類的時候,為了滿足之後可能需要做修改的可能的時候可以使用工廠模式。即在乙個類中的乙個方法例項化 之後需要修改只要修改該函式即可。資料庫鏈結,單例模式,將建構函式宣告為私有 遮蔽在其他地方例項化資料庫連線,宣告乙個方法建立例項 new self 即定義乙個受保護的屬性陣列,當呼...
Java設計模式學習筆記 2
建造者模式的 builder 將乙個複雜物件的構建與它的表示分離,使同樣的構建過程可以建立不同的標識。簡單的用生產兩個大小不同的零件舉例 product 零件類,由2個部件組成 public class product public void setpartb string partb produc...