PHP學習筆記2 設計模式

2021-09-29 06:31:15 字數 3671 閱讀 1651

工廠設計模式

設計模式(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...