php 设计模式之 抽象工厂
1. 抽象工厂模式
还是将实现推迟到子类,但是抽象工厂里面不仅仅只返回一个对象,而是返回一堆
2. 实列
interface Message {
public function send(string $msg);
}
class AliMessage implements Message {
public function send(string $msg) {
return '阿里云短信内容:' . $msg;
}
}
class BaiduMessage implements Message {
public function send(string $msg) {
return '百度SMS短信内容:' . $msg;
}
}
interface Push {
public function send(string $msg);
}
class AliPush implements Push {
public function send(string $msg) {
return '阿里云发送成功:' . $msg;
}
}
class BaiduPush implements Push {
public function send(string $msg) {
return '百度发送成功:' . $msg;
}
}
interface MessageFactory{
public function createMessage();
public function createPush();
}
class AliFactory implements MessageFactory {
public function createMessage() {
return new AliMessage();
}
public function createPush() {
return new AliPush();
}
}
class BaiduFactory implements MessageFactory {
public function createMessage() {
return new BaiduMessage();
}
public function createPush() {
return new BaiduPush();
}
}
$factory = new AliFactory();
// $factory = new BaiduFactory();
$message = $factory->createMessage();
$push = $factory->createPush();
echo $message->send('您已经很久没有登录过系统了,记得回来哦!');
echo $push->send('您有新的红包已到帐,请查收!');

浙公网安备 33010602011771号