[PHP] 工厂方法设计模式-创建型设计模式
2023-02-18 15:36:32 时间
简化就是工厂生成产品,工厂和产品都是接口,分别都有对应的具体实现类
工厂方法和抽象工厂的样子非常的像,只有一点小区别,工厂方法处理一个产品族,抽象工厂处理多个产品族,一个处理的产品少一个处理的多。
有一个工厂接口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); } }
相关文章
- [PHP]算法-二进制中1的个数的PHP实现
- [Oauth] OAuth 2.1废弃隐式验证方式
- [PHP]算法-旋转数组的最小值的PHP实现
- [Oauth] OAuth 2.1整合简化OAuth 2.0
- [PHP]算法-最长公共子串的PHP实现
- [PHP]算法-拼接最小字典序的实现
- [Redis] Redis6 的RC版本更改日志
- [PHP]算法-队列结构的PHP实现
- [Nginx] 1.17.9中的更改日志
- [PHP] PHP7比PHP5数组优化的点
- [PHP]算法-跳台阶问题的PHP实现
- [PHP] 使用guzzle发送异步的HTTP请求
- [PHP]算法-替换空格的PHP实现
- [PHP] 解决mysql下1366 Incorrect string value错误
- [PHP]算法-二叉树中和为某一值的路径的PHP实现
- [PHP] PHP7.4.1安全版本更改日志
- [PHP]算法- 判断是否为二叉搜索树的后序遍历序列的PHP实现
- [PHP] PHP7.4.2安全和修复版本的更改日志
- [PHP]算法- 二叉树的深度的PHP实现
- [PHP] PHP7.4.3安全版本的更改日志