美文网首页
模板模式

模板模式

作者: 零一间 | 来源:发表于2017-08-09 08:51 被阅读21次
<?php
header ( "Content-Type:text/html;charset=utf-8" );
/**
 *  模板模式制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。
 * 角色:
    抽象模板角色(MakePhone):抽象模板类,定义了一个具体的算法流程和一些留给子类必须实现的抽象方法。
    具体子类角色(XiaoMi):实现MakePhone中的抽象方法,子类可以有自己独特的实现形式,但是执行流程受MakePhone控制。
 */
abstract class MakePhone {
    protected $name;
    public function __construct ( $name ) {
        $this->name = $name;
    }
    public function  Make () {
        $this->makeScreen ();
        $this->makeBattery ();
        $this->makeCamera ();
        echo "{$this->name}手机生产完毕!<br/><br/>";
    }
    public abstract function makeScreen ();
    public abstract function makeBattery ();
    public abstract function makeCamera ();
}
class Phone extends MakePhone {
    public function __construct ( $name ) {
        parent::__construct ( $name );
    }
    public function makeScreen () {
        echo "{$this->name}屏幕ok!<br/>";
    }
    public function makeBattery () {
        echo "{$this->name}电池ok!<br/>";
    }
    public function makeCamera () {
        echo "{$this->name}相机ok!<br/>";
    }
}
class IPhone extends MakePhone {
    public function __construct ( $name ) {
        parent::__construct ( $name );
    }
    public function makeScreen () {
        echo "{$this->name}屏幕ok!<br/>";
    }
    public function makeBattery () {
        echo "{$this->name}电池ok!<br/>";
    }
    public function makeCamera () {
        echo "{$this->name}相机ok!<br/>";
    }
    public function makeInit () {
        echo "{$this->name}OS初始化 ok!<br/>";
    }
    public function  Make () {
        $this->makeScreen ();
        $this->makeBattery ();
        $this->makeCamera ();
        $this->makeInit();
        echo "{$this->name}手机生产完毕!<br/><br/>";
    }
}
$phoneObj = new Phone( 'Xiaomi ' );
$phoneObj->make ();
$phoneObj = new Phone( 'Huawei ' );
$phoneObj->make ();
$iphoneObj = new IPhone( 'IPhone ' );
$iphoneObj->make ();

相关文章

  • 11.8设计模式-模板模式-详解

    设计模式-模式模式 模板方法模式详解 模板方法模式在android中的实际运用 1.模板方法模式详解 2.模板方法...

  • 第5章 -行为型模式-模板方法模式

    一、模板方法模式的简介 二、模板方法模式的优点 三、模板方法模式的应用场景 四、模板方法模式的实例

  • 模板方法模式

    模板方法模式 模板方法模式的定义 模板方法模式(Template Method Pattern)是如此简单,以致让...

  • 设计模式系列-模板方法模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 模板方法模式 定义 模板方法模式在一个方法中定义了算法...

  • 设计模式(行为型)-- 模板模式

    模板模式的原理与实现 模板模式,全称是模板方法设计模式,英文是 Template Method Design Pa...

  • 行为型-Template

    模板模式的原理与实现 模板模式,全称是模板方法设计模式,英文是 Template Method Design Pa...

  • 行为型 模板模式(文末有项目连接)

    1:模板方式解决的问题(先了解) 2:模板模式的原理与实现 3:模板模式核心代码 4:模板模式复用例子(Input...

  • 模板模式,也是解耦算法的吗?

    模板模式,和算法有什么关系呢? 模板模式,在什么场景使用呢? 模板模式(Template Pattern),定义一...

  • 模板方法模式

    一、模板方法模式介绍 二、模板方法模式代码实例

  • 58 - 模板模式

    本文来学习另外一种行为型设计模式,模板模式。模板模式主要是用来解决复用和扩展两个问题 模板模式的原理与实现 模板模...

网友评论

      本文标题:模板模式

      本文链接:https://www.haomeiwen.com/subject/jdlfrxtx.html