zoukankan      html  css  js  c++  java
  • PHP工厂模式计算面积与周长

    <?php
    interface InterfaceShape
    {
    function getArea();
    function getCircumference();
    }

    /**
    * 矩形
    */
    class Rectangle implements InterfaceShape
    {
    private $width;
    private $height;
    public function __construct($width,$height){
    $this->width=$width;
    $this->height=$height;
    }
    public function getArea(){
    return $this->width*$this->height;
    }
    public function getCircumference(){
    return 2*$this->width+2*$this->height;
    }
    }
    /**
    * 圆
    */
    class circle implements InterfaceShape{
    private $redius;
    public function __construct($redius){
    $this->redius = $redius;
    }
    public function getArea(){
    return M_PI*pow($this->redius,2);
    }
    public function getCircumference(){
    return M*PI*2*$this->redius;
    }
    }
    class FactoryShape{//func_get_arg(索引)返回当前函数指定索引的参数值,返回string格式;
    static public function create(){
    switch (func_num_args()) {
    case 1:
    return new circle(func_get_arg(0));
    case 2:
    return new Rectangle(func_get_arg(0),func_get_arg(1));
    default:
    break;
    }
    }
    }
    $rect = FactoryShape::create(5,5);
    var_dump($rect);
    echo "<br>";
    $circle = FactoryShape::create(4);
    var_dump($circle);
    ?>
  • 相关阅读:
    html5 语义
    HTML Web Workers
    创建删除元素appendChild,removeChild,createElement,insertBefore
    getPos封装
    getPos,offsetTop
    HTML 中有用的字符实体
    ellipsis
    HTML 统一资源定位器
    width,clientWidth,offsetWidth
    .offsetLeft,.offsetTop
  • 原文地址:https://www.cnblogs.com/isuansuan/p/9767105.html
Copyright © 2011-2022 走看看