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();
  • 相关阅读:
    [Javascript]史上最短的IE浏览器判断代码
    初学者必看:精心整理的Javascript操作JSON总结
    用实例一步步教你写Jquery插件
    学习一种新编程语言要做的14个练习
    一些实战中总结的 javascript 开发经验
    JavaScript开发规范
    jQuery性能优化
    不到30行JS代码实现的Excel表格
    javascript 执行顺序详解
    Java基础知识强化之IO流笔记58:内存操作流
  • 原文地址:https://www.cnblogs.com/zhouqi666/p/9147554.html
Copyright © 2011-2022 走看看