PHP 設計模式主要用於解決常見程式設計問題,包含以下解決方案:觀察者模式:透過分離物件和事件,實現鬆散耦合。單例模式:確保一個類別只有一個實例。策略模式:透過交換演算法,實現可擴展性。
PHP 設計模式:常見問題解答
簡介
設計模式是可重複使用的軟體解決方案,用於解決常見程式設計問題。它們提供了模組化和結構化的方式來組織和編寫程式碼。在 PHP 中,有多種設計模式可用於解決各種問題。
常見問題及其設計模式解決方案
1. 如何避免緊密耦合?
//创建一个观察者 class Logger implements Observer { public function update(Subject $subject) { echo $subject->getState() . PHP_EOL; } } //创建一个主题 class User { private $observers = []; public function attach(Observer $observer) { $this->observers[] = $observer; } public function notify() { foreach ($this->observers as $observer) { $observer->update($this); } } public function changeState($state) { $this->state = $state; $this->notify(); } } //创建一个会话 $user = new User(); //创建一个记录器观察者 $logger = new Logger(); //将记录器观察者附加到用户 $user->attach($logger); //更改用户状态并触发通知 $user->changeState('Logged in');
2. 如何實作單例模式?
class Database { private static $instance = null; private function __construct() {} public static function getInstance() { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; } } //使用单例 $db = Database::getInstance();
3. 如何建立可擴充的程式碼?
interface SortStrategy { public function sort(array $data); } class BubbleSortStrategy implements SortStrategy { public function sort(array $data) { //冒泡排序算法 } } class InsertionSortStrategy implements SortStrategy { public function sort(array $data) { //插入排序算法 } } class Sorter { private $strategy; public function setStrategy(SortStrategy $strategy) { $this->strategy = $strategy; } public function sort(array $data) { $this->strategy->sort($data); } } //使用策略图案 $sorter = new Sorter(); $sorter->setStrategy(new BubbleSortStrategy()); $sorter->sort([1, 3, 2, 4]);
以上是PHP設計模式:常見問題解答的詳細內容。更多資訊請關注PHP中文網其他相關文章!