php Builder建造器模式学习手记
发布时间:2023-11-04 11:31:50 所属栏目:PHP教程 来源:未知
导读: 思路:既然星际的画面由几个部分组成:地图(就是地形和矿产),建筑,部队。那么我们把他们看成是零件,组装起来就是最后的产品(整个画面)。
建造器(Builder)模式示例:
建造器(Builder)模式示例:
思路:既然星际的画面由几个部分组成:地图(就是地形和矿产),建筑,部队。那么我们把他们看成是零件,组装起来就是最后的产品(整个画面)。 建造器(Builder)模式示例: 代码如下 1 2 //规范制造各个零件的接口 3 interface Builder 4 { 5 //制造地图零件 6 public function buildMapPart(); 7 //制造建筑零件 8 public function buildBuildingPart(); 9 //制造部队零件 10 public function buildArmyPart(); 11 //组装零件 12 public function getResult(); 13 } 14 //实际建造器类,比如初始化某个任务关 15 class ConcreteBuilder implements Builder 16 { 17 //制造地图零件 18 public function buildMapPart() 19 { 20 //根据任务的设定画上地图 21 echo '地图零件n'; 22 } 23 //制造建筑零件 24 public function buildBuildingPart() 25 { 26 //根据任务的设定画上建筑,包括玩家的和敌人的 27 echo '建筑零件n'; 28 } 29 //制造部队零件 30 public function buildArmyPart() 31 { 32 //根据任务的设定画上部队,包括玩家的和敌人的 33 echo '部队零件n'; 34 } 35 //组装零件 36 public function getResult() 37 { 38 //将所有的东西叠加和处理,形成初始化画面 39 echo '组装零件n'; 40 } 41 } 42 //监督类,也就是控制绘制流程的类 43 class Director 44 { 45 //私有属性,确定使用的建造器 46 private $builder; 47 //构造方法,参数为选定的建造器对象 48 public function __construct($builder) 49 { 50 //确定使用的建造器 51 $this->builder = $builder; 52 } 53 //负责建造流程的方法,调用建造器对象的方法,制造所有零件 54 public function buildeAllPart() 55 { 56 //制造地图零件 57 $this->builder->buildMapPart(); 58 //制造建筑零件 59 $this->builder->buildBuildingPart(); 60 //制造部队零件 61 $this->builder->buildArmyPart(); 62 } 63 } 64 //假设根据任务关,初始化我们需要的实际建造器对象 65 $concreteBuilder = new ConcreteBuilder(); 66 //初始化一个监督对象 67 $director = new Director($concreteBuilder); 68 //制造所有零件 69 $director->buildeAllPart(); 70 //最后让建造器组装零件,生成画面 71 $concreteBuilder->getResult(); 72 ?> 用途总结:建造器模式可以将流程和细节分离,各司其职。 实现总结:需要一个建造器接口或者抽象类,负责规范各个方法,比如上面的Builder。然后让实际的建造器类去实现所有的方法,比如上面的ConcreteBuilder。同时需要负责流程管理的监督类,比如上面的Director,负责调用建造器的各个零件制造方法。最后让建造器去组装所有的零件 (编辑:92站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐