zoukankan      html  css  js  c++  java
  • [PHP] 生成器模式-创建型设计模式

    目的:生成器的目的是将复杂对象的创建过程(流程)进行抽象,生成器表现为接口的形式。

    如果对象有复杂的继承树,理论上创建对象的生成器也同样具有复杂的继承树。


    传进来一个生成器, 我调用这个生成器来生成我所需要的汽车,这就是生成器模式的核心.这个生成器Builder是个接口,把复杂对象的创建过程进行抽象

    class Director
    {
        public function build(Builder $builder): Vehicle
        {
            $builder->createVehicle();
            $builder->addDoors();
            $builder->addEngine();
            $builder->addWheel();
            return $builder->getVehicle();
        }
    }

    这就是生成器这个接口

    interface Builder
    {
        public function createVehicle();
        public function addWheel();
        public function addEngine();
        public function addDoors();
        public function getVehicle(): Vehicle;
    }

    有两个具体的实现类 CarBuilder  TruckBuilder 分别生成汽车和卡车

    class TruckBuilder implements Builder
    {
        private Truck $truck;
        public function addDoors(){
        }
        public function addEngine(){
        }
        public function addWheel(){
        }
    
        public function createVehicle(){
        }
    
        public function getVehicle(): Vehicle{
        }
    }

    使用的时候,先创建builder,把builder通过参数传递进去

    $truckBuilder = new TruckBuilder();
    $newVehicle = (new Director())->build($truckBuilder);
  • 相关阅读:
    个人管理:2,3月微薄整理
    ORM相关图片整理
    LmgORM项目 实体类转换器
    (转)Enterprise Architect 7.0入门教程
    禁止右键复制的代码
    UML示例图(转)学习
    Flash FMS Helloword
    模拟生成Guid
    Flash Media Server安装
    WebSphere创建删除概要文件
  • 原文地址:https://www.cnblogs.com/taoshihan/p/13809379.html
Copyright © 2011-2022 走看看