简单工厂模式(三)

来源:互联网 发布:数据流程图的分析方法 编辑:程序博客网 时间:2024/05/29 18:27

工厂模式,就是负责生成其他对象的类或方法。

1 类实现

比如,我们有一些类,它们都继承自交通工具类:

interface Vehicle{    public function drive();}class Car implements Vehicle{    public function drive()    {        echo '汽车靠四个轮子滚动行走。';    }}class Ship implements Vehicle{    public function drive()    {        echo '轮船靠螺旋桨划水前进。';    }}class Aircraft implements Vehicle{    public function drive()    {        echo '飞机靠螺旋桨和机翼的升力飞行。';    }}

再创建一个工厂类,专门用作类的创建,:

class VehicleFactory{    public static function build($className = null)    {        $className = ucfirst($className);        if ($className && class_exists($className)) {            return new $className();        }        return null;    }}

工厂类用了一个静态方法来创建其他类,在客户端中就可以这样使用:

VehicleFactory::build('Car')->drive();VehicleFactory::build('Ship')->drive();VehicleFactory::build('Aircraft')->drive();

省去了每次都要new类的工作。

2 解决

 

 

参考资料:

  1. Design Patterns: The Simple Factory Pattern
  2. Understanding the Factory Method Design Pattern
  3. 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
更多信息请参考千锋php,千锋论坛
原创粉丝点击