This commit is contained in:
cloud 2022-04-13 06:03:54 +08:00
parent b95ac3b415
commit f549573d19
2 changed files with 0 additions and 72 deletions

View File

@ -1,35 +0,0 @@
<?php
namespace demo\AbstractFactory;
/**
* 抽象工厂类
*
* 该设计模式实现了设计模式的依赖倒置原则,因为最终由具体子类创建具体组件
*
* 在本例中,抽象工厂为创建 Web 组件产品提供了接口这里有两个组件文本和图片有两种渲染方式HTML
* JSON对应四个具体实现类。
*
* 尽管有四个具体类,但是客户端只需要知道这个接口可以用于构建正确的 HTTP 响应即可,无需关心其具体实现。
*/
abstract class AbstractFactory
{
/**
* 创建本文组件
*
* @param string $content
*
* @return Text
*/
abstract public function createText($content);
/**
* 创建图片组件
*
* @param string $path
* @param string $name
*
* @return Picture
*/
abstract public function createPicture($path, $name = '');
}

View File

@ -1,37 +0,0 @@
<?php
namespace demo\AbstractFactory;
/**
* JsonFactory类
*
* JsonFactory 是用于创建 JSON 组件的工厂
*/
class JsonFactory extends AbstractFactory
{
/**
* 创建图片组件
*
* @param string $path
* @param string $name
*
* @return Json\Picture|Picture
*/
public function createPicture($path, $name = '')
{
return new Json\Picture($path, $name);
}
/**
* 创建文本组件
*
* @param string $content
*
* @return Json\Text|Text
*/
public function createText($content)
{
return new Json\Text($content);
}
}