php宸ュ巶妯″紡鍜屽崟渚嬫ā寮忔€庝箞瀹炵幇
PHP宸ュ巶妯″紡鐨勫疄鐜帮細
宸ュ巶妯″紡鏄竴绉嶅父鐢ㄧ殑闈㈠悜瀵硅薄璁捐妯″紡锛屽畠閫氳繃瀹氫箟涓€涓伐鍘傜被鏉ュ垱寤哄拰杩斿洖鍏朵粬瀵硅薄鐨勫疄渚嬶紝鑰屼笉闇€瑕佺洿鎺ヤ娇鐢╪ew鍏抽敭瀛楀疄渚嬪寲瀵硅薄銆備互涓嬫槸涓€涓畝鍗曠殑PHP宸ュ巶妯″紡鐨勫疄鐜扮ず渚嬶細
<?php
// 瀹氫箟涓€涓帴鍙?/span>
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");
}
}
}
// 浣跨敤宸ュ巶绫诲垱寤哄璞?/span>
$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鍏抽敭瀛楀疄渚嬪寲绫?/span>
$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杩涜鏁版嵁搴撴搷浣?/span>
鍦ㄤ笂闈㈢殑绀轰緥涓紝Database绫荤殑鏋勯€犲嚱鏁版槸绉佹湁鐨勶紝鍥犳涓嶈兘鐩存帴閫氳繃new鍏抽敭瀛楀疄渚嬪寲绫汇€傞€氳繃getInstance()鏂规硶鑾峰彇绫荤殑鍞竴瀹炰緥锛屽鏋滃疄渚嬩笉瀛樺湪锛屽垯鍒涘缓涓€涓柊瀹炰緥骞惰繑鍥烇紝鍚﹀垯鐩存帴杩斿洖宸插瓨鍦ㄧ殑瀹炰緥銆傞€氳繃getConnection()鏂规硶鍙互鑾峰彇鏁版嵁搴撹繛鎺ュ璞★紝鐒跺悗鍙互浣跨敤璇ヨ繛鎺ュ璞¤繘琛屾暟鎹簱鎿嶄綔銆?/p>