zoukankan      html  css  js  c++  java
  • 设计模式之外观模式(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();
  • 相关阅读:
    PHP发送邮件(php100视频后笔记)
    简单页面访问统计
    怎样制作RSS源
    r给自己网站/博客制作安卓应用程序
    反射简单概念
    笔记本
    使用IHttpModule实现简单的页面重映射Url
    工厂方法模式与抽象工厂模式的区别
    安装TFS2010实际体验
    限定登录失败次数,超过指定次数就限制登录一段时间
  • 原文地址:https://www.cnblogs.com/zhouqi666/p/9147554.html
Copyright © 2011-2022 走看看