• 设计模式之外观模式(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 FacadeShapeFacade;
    
    $shape = new ShapeFacade();
    $shape->drawCircle();
  • 相关阅读:
    Alluxio部署(local模式)
    spring boot热部署
    zeppelin部署
    hbase集群搭建
    spark集群模式
    spark单机模式
    ssh免密码登录配置
    error: not found: value sc
    sublime插件
    sublime和webstorm安装zencoding
  • 原文地址:https://www.cnblogs.com/zhouqi666/p/9147554.html
Copyright © 2020-2023  润新知