极简架构模式-业务代表模式

业务代表模式 - Business Delegate Pattern

解释

在表示层和业务层之间添加了一个抽象层。用于解耦表示层和业务层。

结构中包含的角色

  1. 客户端(Client) - 表示层代码。在MVC里面就是V层。
  2. 业务代表类(BusinessDelegate)
  3. 抽象业务服务(BusinessService)
  4. 具体业务服务(ConcreteBusinessService)

最小可表达代码

interface BusinessService 
{
    public function handle();
}

class ConcreteBusinessService implements BusinessService
{
    public function handle()
    {
    echo 'Service : handle';
    }
}

class BusinessDelegate
{
    private $serviceType;

    public function setServiceType(String $serviceType)
    {
        $this->serviceType = $serviceType;
    }

    public function handle()
    {
        // 这里可以写成一个查询服务,为了方便理解,写具体服务在这里
        if ($this->serviceType) {}
        $businessService = new ConcreteBusinessService();
        $businessService->handle();    
    }
}

class Client
{
    private  $businessService;

    public function __construct(BusinessDelegate $businessService)
    {
        $this->businessService = $businessService;
    }

    public function handle()
    {
        $this->businessService->handle();
    }
}

$businessDelegate = new BusinessDelegate();
$businessDelegate->setServiceType("EJB");
$client = new Client($businessDelegate);
$client->handle();
本作品采用《CC 协议》,转载必须注明作者和本文链接
Long2Ge
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!