簡化就是工廠生成產品,工廠和產品都是介面,分別都有對應的具體實作類
工廠方法和抽象工廠的樣子非常的像,只有一點小區別,工廠方法處理一個產品族,抽象工廠處理多個產品族,一個處理的產品少一個處理的多,
有一個工廠介面LoggerFactory , 日志器工廠
有兩個工廠的實作類,標準輸出日志器工廠 和 檔案日志器工廠來生產Logger
interface LoggerFactory { public function createLogger(): Logger; } class StdoutLoggerFactory implements LoggerFactory { public function createLogger(): Logger{ } } class FileLoggerFactory implements LoggerFactory { public function createLogger(): Logger { } }
這個Logger是一個介面 , 有具體的實作類FileLogger和StdoutLogger
interface Logger { public function log(string $message); } class StdoutLogger implements Logger { public function log(string $message) { echo $message; } } class FileLogger implements Logger { private string $filePath; public function __construct(string $filePath) { $this->filePath = $filePath; } public function log(string $message) { file_put_contents($this->filePath, $message . PHP_EOL, FILE_APPEND); } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/172119.html
標籤:PHP
