zoukankan      html  css  js  c++  java
  • 模板模式

    <?php
    /**
     * 模板模式
     *
     * 定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构可以定义该算法的某些特定步骤
     *
     */
    abstract class TemplateBase
    {
        public function Method1()
        {
            echo "abstract Method1<br/>";
        }
    
        public function Method2()
        {
            echo "abstract Method2<br/>";
        }
    
        public function Method3()
        {
            echo "abstract Method3<br/>";
        }
    
        public function doSomeThing()
        {
            $this->Method1();
            $this->Method2();
            $this->Method3();
        }
    }
    
    class TemplateObject extends TemplateBase
    {
    }
    
    class TemplateObject1 extends TemplateBase
    {
        public function Method3()
        {
            echo "TemplateObject1 Method3<br/>";
        }
    }
    
    class TemplateObject2 extends TemplateBase
    {
        public function Method2()
        {
            echo "TemplateObject2 Method2<br/>";
        }
    }
    
    // 实例化
    $objTemplate = new TemplateObject();
    $objTemplate1 = new TemplateObject1();
    $objTemplate2 = new TemplateObject2();
    
    $objTemplate->doSomeThing();
    $objTemplate1->doSomeThing();
    $objTemplate2->doSomeThing();
    用途总结:模板模式可以将一系列的步骤自动化,同时又可以满足不同的细节变化
    说明:子类如果需要的话,可以重新定义abstract(抽象)父类的非抽象方法;必须重新定义抽象父类的抽象方法
  • 相关阅读:
    ASM FailGroup验证
    oracle 11g RAC 补丁升级方法
    数据库优化一
    TypeScript(类—继承—多态)
    TypeScript(安装配置—数据类型—函数)
    IE9兼容
    移动端自适应vw、vh、rem
    npm命令随笔
    安卓、IOS兼容问题
    获取页面大小和元素位置offset、client、scroll
  • 原文地址:https://www.cnblogs.com/jiufen/p/4992057.html
Copyright © 2011-2022 走看看