生成器模式

  1. require "D:\\xxx\bild.php";
  2. require "D:\\xxx\cx_bild.php";
  3. require "D:\\xxx\jt_build.php";
  4.  
  5. class Director {
  6. public function build($build){
  7. $build->buildHeader();
  8. $build->buildChiBang();
  9. $build->buildJiao();
  10. return $build->GetBird();
  11. }
  12. }
  13.  
  14. $dir = new Director();
  15. $duixiang = $dir->build(new BuleBild());
  16. $Zabild = $dir->build(new Zabild());
  17.  
  18. $BuleBild = $duixiang->show();
  19. $Zabild = $Zabild->show();

bild.php

  1. <?php
  2. class bild {
  3. public $header;
  4. public $chibang;
  5. public $jiao;
  6.  
  7. function show(){
  8. echo '头的颜色'.$this->header."<br>";
  9. echo '翅膀的颜色'.$this->chibang."<br>";
  10. echo '叫的颜色'.$this->jiao."<br>";
  11. }
  12.  
  13. }

cx_build.php

  1. <?php
  2. abstract class BildBuilder{
  3.  
  4. public $bild;
  5. public function __construct()
  6. {
  7. $this->bild = new bild();
  8. }
  9.  
  10. abstract function buildHeader();
  11. abstract function buildChiBang();
  12. abstract function buildJiao();
  13. }

jt_build.php

  1. <?php
  2. class BuleBild extends BildBuilder{
  3.  
  4. public function buildHeader(){
  5. $this->bild->header = 'bule';
  6. }
  7.  
  8. public function buildChiBang(){
  9. $this->bild->chibang = 'bule';
  10. }
  11.  
  12. public function buildJiao(){
  13. $this->bild->jiao = 'bule';
  14. }
  15.  
  16. public function GetBird(){
  17. return $this->bild;
  18. }
  19. }
  20.  
  21. class Zabild extends BildBuilder{
  22.  
  23. public function buildHeader(){
  24. $this->bild->header = 'Red';
  25. }
  26.  
  27. public function buildChiBang(){
  28. $this->bild->chibang = 'huang';
  29. }
  30.  
  31. public function buildJiao(){
  32. $this->bild->jiao = 'qings';
  33. }
  34.  
  35. public function GetBird(){
  36. return $this->bild;
  37. }
  38. }

php设计模式--生成器模式的更多相关文章

  1. TypeScript实现设计模式——生成器模式

    生成器模式是一种在TypeScript/JavaScript中非常常见的创建型设计模式,它使你能够分步骤创建复杂对象.当你需要创建一个可能有许多配置选项的对象时, 该模式会特别有用. 问题 假设我们需 ...

  2. C#设计模式——生成器模式(Builder Pattern)

    一.概述在软件系统中,有时候面临着复杂的对象创建,该对象由一定算法构成的子对象组成,由于需求变化,这些子对象会经常变换,但组合在一起的算法却是稳定的.生成器模式可以处理这类对象的构建,它提供了一种封装 ...

  3. javascript设计模式-生成器模式(Builder)

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 每天一个设计模式-7 生成器模式(Builder)

    每天一个设计模式-7 生成器模式(Builder) 一.实际问题 在讨论工厂方法模式的时候,提到了一个导出数据的应用框架,但是并没有涉及到导出数据的具体实现,这次通过生成器模式来简单实现导出成文本,X ...

  5. 设计模式(二): BUILDER生成器模式 -- 创建型模式

    1.定义 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式. 2.适用场景 1. 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式 ...

  6. Java设计模式:生成器模式

    问题的提出: 有些类很容易创建对象,直接调用其构造方法,例如Student student = new Student("1001","zhang",21); ...

  7. 设计模式(4)建造者模式/生成器模式(Builder)

    设计模式(0)简单工厂模式 设计模式(1)单例模式(Singleton) 设计模式(2)工厂方法模式(Factory Method) 设计模式(3)抽象工厂模式(Abstract Factory) 源 ...

  8. Java 设计模式系列(四)生成器模式

    Java 设计模式系列(四)生成器模式 生成器模式也称之为建造者模式.将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.demo 1. 生成器模式原理 1.1 生成器模式结构 ...

  9. 设计模式03: Builder 生成器模式(创建型模式)

    Builder生成器模式(创建型模式) Builder模式缘起假设创建游戏中的一个房屋House设施,该房屋的构建由几个部分组成,且各个部分富于变化.如果使用最直观的设计方法,每个房屋部分的变化,都将 ...

随机推荐

  1. springCloud之路API路由网关Zuul

    1.简介 简单的理解就是,相当于在所有服务的调用前加了一层防火墙, 主要就是对外提供服务接口的时候,起到了请求的路由和过滤作用,也因此能够隐藏内部服务的接口细节,提高系统的安全性: 官方文档:http ...

  2. Swagger2.X注解

    常用到的注解有: 作用范围 API 使用位置 协议集描述 @Api 用于controller类上 协议描述 @ApiOperation 用在controller的方法上 非对象参数集 @ApiImpl ...

  3. springMVC学习日志一

    一.springMVC流程图省略 二.写一个简单的springmvc的demo来说明 2.1引入springMVC相关的jar包 2.2配置DispatcherServlet 在web.xml < ...

  4. UWP 动画之路径

    xml --------------------------------------------- <Page x:Class="MyApp.MainPage" xmlns= ...

  5. 创建File类 及 this.getClass().getResource()方法 用到的文件路径的问题

    1 package test; 2 3 import java.io.*; 4 import java.util.Scanner; 5 6 public class TestResource { 7 ...

  6. Linux命令集锦之·字符截取命令

    时间:2018-11-15 记录:byzqy 字符截取命令: cut.printf.awk.sed cut $ cut [选项] 文件名 选项: -f 列号:提取第几列: -d 分隔符:按照指定分隔符 ...

  7. Mysql基本知识整理

    一.简介 1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 2.关系型数据库 ...

  8. 【MIT6.S081/6.828】手把手教你搭建开发环境

    目录 1. 简介 2. 安装ubuntu20.04 3. 更换源 3.1 更换/etc/apt/sources.list文件里的源 3.2 备份源列表 3.3 打开sources.list文件修改 3 ...

  9. 使用HttpRunner3+Allure+Jenkins实现Web接口自动化测试

    陆续给不同项目做了Web接口自动化测试,在尝试不同方法的同时会有新的体会.最近用到了HttpRunner3,本文将记录使用HttpRunner3+Allure+Jenkins在项目中快速实现Web接口 ...

  10. PyQT5:信号和槽

    PyQT5:信号和槽 信号和槽 Qt的主要特征之一是它使用信号和插槽在对象之间进行通信. 当潜在的事件发生时,会发出一个信号.插槽是可调用的Python,如果将信号连接到插槽,则在发出信号时将调用该插 ...