亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

php工廠模式和單例模式怎么實現

PHP
小億
83
2023-10-13 18:48:08
欄目: 編程語言

PHP工廠模式的實現:

工廠模式是一種常用的面向對象設計模式,它通過定義一個工廠類來創建和返回其他對象的實例,而不需要直接使用new關鍵字實例化對象。以下是一個簡單的PHP工廠模式的實現示例:

<?php
// 定義一個接口
interface Shape {
public function draw();
}
// 實現接口的具體類
class Circle implements Shape {
public function draw() {
echo "Drawing a circle\n";
}
}
class Square implements Shape {
public function draw() {
echo "Drawing a square\n";
}
}
// 定義一個工廠類
class ShapeFactory {
public static function createShape($type) {
switch ($type) {
case 'circle':
return new Circle();
case 'square':
return new Square();
default:
throw new Exception("Unsupported shape type: $type");
}
}
}
// 使用工廠類創建對象
$circle = ShapeFactory::createShape('circle');
$circle->draw(); // 輸出 "Drawing a circle"
$square = ShapeFactory::createShape('square');
$square->draw(); // 輸出 "Drawing a square"

單例模式的實現:

單例模式是一種常用的面向對象設計模式,它確保類只有一個實例,并提供全局訪問該實例的方法。以下是一個簡單的PHP單例模式的實現示例:

<?php
class Database {
private static $instance;
private $connection;
private function __construct() {
// 私有構造函數,防止通過new關鍵字實例化類
$this->connection = mysqli_connect('localhost', 'username', 'password', 'database');
}
public static function getInstance() {
if (!self::$instance) {
self::$instance = new Database();
}
return self::$instance;
}
public function getConnection() {
return $this->connection;
}
}
// 使用單例類獲取數據庫連接
$db = Database::getInstance();
$connection = $db->getConnection();
// 使用$connection進行數據庫操作

在上面的示例中,Database類的構造函數是私有的,因此不能直接通過new關鍵字實例化類。通過getInstance()方法獲取類的唯一實例,如果實例不存在,則創建一個新實例并返回,否則直接返回已存在的實例。通過getConnection()方法可以獲取數據庫連接對象,然后可以使用該連接對象進行數據庫操作。

0
贵德县| 衡阳县| 新平| 离岛区| 朝阳市| 新兴县| 奎屯市| 津南区| 大港区| 双流县| 隆回县| 古交市| 百色市| 通辽市| 小金县| 拜城县| 鄂托克旗| 金堂县| 延川县| 松阳县| 巴南区| 化德县| 金秀| 扶余县| 喜德县| 子洲县| 油尖旺区| 边坝县| 马尔康县| 大新县| 宁明县| 湖州市| 神木县| 壤塘县| 桓台县| 汉沽区| 菏泽市| 文安县| 新邵县| 台湾省| 石家庄市|