设计模式之外观模式(PHP实现)

github地址:https://github.com/ZQCard/design_pattern
/*
* * 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。 * 这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 * 这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。 */

(1)Shape.class.php (接口类,规范实现类接口)

<?php

namespace Facade;

interface Shape
{
    public function draw();
}

(2)Circle.class.php (圆形具体实现类)

<?php

namespace Facade;

class Circle implements Shape
{
    public function draw()
    {
        print_r("CirCle");
    }
}

(3)Square.class.php (正方形具体实现类)

<?php

namespace Facade;

class Square implements Shape
{
    public function draw()
    {
        print_r("Square");
    }
}

(4)Rectangle.class.php(长方形实现类)

<?php

namespace Facade;

class Rectangle implements Shape
{
    public function draw()
    {
        print_r("Rectangle");
    }
}

(5) ShapeFacade.class.php(形状门面装饰类)

<?php

namespace Facade;

class ShapeFacade
{
    private $circle;
    private $rectangle;
    private $square;

    public function __construct()
    {
        $this->circle = new Circle();
        $this->rectangle = new Rectangle();
        $this->square = new Square();
    }

    public function drawCircle(){
        $this->circle->draw();
    }

    public function drawRectangle()
    {
        $this->rectangle->draw();
    }

    public function drawSquare()
    {
        $this->square->draw();
    }
}

(6)facade.php (客户端)

<?php

spl_autoload_register(function ($className){
    $className = str_replace('\\','/',$className);
    include $className.".class.php";
});

use Facade\ShapeFacade;

$shape = new ShapeFacade();
$shape->drawCircle();

 

转载于:https://www.cnblogs.com/zhouqi666/p/9147554.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值