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);
    ?>
  • 相关阅读:
    代码重构编译---make
    clickhouse日期函数
    连续登陆天数+最大登陆天数
    clickhouse基本使用
    数组
    CK优化
    Hive查询优化~布隆过滤器使用
    Presto常见问题优化
    Presto原理解析
    几种排序说明
  • 原文地址:https://www.cnblogs.com/isuansuan/p/9767105.html
Copyright © 2011-2022 走看看