详解〝富士康流水线〞式的工厂模式

〝 古人学问遗无力,少壮功夫老始成 〞

工厂模式是在设计模式中比较常见,打个比方,如果你的小孩需要一个海贼王的玩具,你会去找一个海贼王的玩具加工厂帮你做一个,那么如果小孩又想要七龙珠的模型,你又要去找七龙珠的玩具加工厂? 这肯定不现实,而且工厂只做固定一种业务,肯定不久就会倒闭,那么好的方法是啥呢,你去找一个工厂,然后给他们图纸,告诉他们你需要哪种玩具即可,他们会自动根据你的图纸去设计你想要的玩具,这就是工厂模式

目录

 一、创建简单工厂类

二、工厂模式的实际应用 


 一、创建简单工厂类

  • 工厂类的作用就是你只要传你需要的类进去,你就能得到他的实例化对象
  • 其实工厂就是帮你实例化你所需要的类
  •  结果如下
object(A)#1 (0) {
}
object(B)#2 (0) {
}

二、工厂模式的实际应用 

width = $width;
        $this->height = $height;
    }

    public function area() {
        return $this->width * $this->height;
    }

    public function perimeter() {
        return 2 * ($this->width + $this->height);
    }
}

/**
 * 圆
 * Class circle
 */
class circle implements shape
{
    private $radius;

    public function __construct($radius) {
        $this->radius = $radius;
    }

    public function area() {
        return M_PI * pow($this->radius, 2);
    }

    public function perimeter() {
        return 2 * M_PI * $this->radius;
    }
}

/**
 * 工厂类
 * Class factory
 */
class factory
{
    public static function create() {
        switch (func_num_args()) {
            case 1:
                return new circle(func_get_arg(0));
                break;
            case 2:
                return new rectangle(func_get_arg(0), func_get_arg(1));
                break;
        }
    }
}

$a = factory::create(4, 5);
$b = factory::create(2);

echo '矩形的周长为:' . $a->perimeter() . '
'; echo '矩形的面积为:' . $a->area() . '
'; echo '圆的周长为:' . $a->perimeter() . '
'; echo '圆的面积为:' . $a->area() . '
';

 猜你喜欢:

详解〝事后诸葛亮〞式的观察者模式 

详解〝九阳神功〞式的适配器模式

详解〝富士康流水线〞式的工厂模式

详解〝极限抠门〞式的单例模式

详解〝洞悉人性〞式的策略模式

你可能感兴趣的:(深入设计模式,设计模式,php)