PHP 디자인 패턴은 주로 다음 솔루션을 포함하여 일반적인 프로그래밍 문제를 해결하는 데 사용됩니다. 관찰자 패턴: 객체와 이벤트를 분리하여 느슨한 결합을 달성합니다. 싱글톤 패턴: 클래스에 인스턴스가 하나만 있는지 확인합니다. 전략 모드: 교환 알고리즘을 통해 확장성을 달성합니다.
PHP 디자인 패턴: FAQ
소개
디자인 패턴은 일반적인 프로그래밍 문제를 해결하기 위한 재사용 가능한 소프트웨어 솔루션입니다. 코드를 구성하고 작성하는 모듈식 구조화된 방법을 제공합니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!