php设计模式 Template (模板模式)

复制代码 代码如下:

<?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();

时间: 2024-10-31 12:49:52

php设计模式 Template (模板模式)的相关文章

php设计模式 Template (模板模式)_php技巧

继承关系由于自身的缺陷,被专家们扣上了"罪恶"的帽子."使用委派关系代替继承关系","尽量使用接口实现而不是抽象类继承"等等专家警告,让我们这些菜鸟对继承"另眼相看".其实,继承还是有很多自身的优点所在.只是被大家滥用的似乎缺点更加明显了.合理的利用继承关系,还是能对你的系统设计起到很好的作用的.而模板方法模式就是其中的一个使用范例. GOF给模板方法(Template Method)模式定义一个操作中的算法的骨架,而将一些步

Java设计模式之模板模式(Template模式)介绍_java

Template模式定义:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中. 其实Java的抽象类本来就是Template模式,因此使用很普遍.而且很容易理解和使用,我们直接以示例开始: 复制代码 代码如下: public abstract class Benchmark { /** * 下面操作是我们希望在子类中完成 */ public abstract void benchmark(); /** * 重复执行benchmark次数 */ public final long repea

16、Python与设计模式--模板模式

一.股票查询客户端 投资股票是种常见的理财方式,我国股民越来越多,实时查询股票的需求也越来越大.今天,我们通过一个简单的股票查询客户端来认识一种简单的设计模式:模板模式.根据股票代码来查询股价分为如下几个步骤:登录.设置股票代码.查询.展示.构造如下的虚拟股票查询器: class StockQueryDevice(): stock_code="0" stock_price=0.0 def login(self,usr,pwd): pass def setCode(self,code):

C#设计模式(14)——模板方法模式(Template Method)

原文:C#设计模式(14)--模板方法模式(Template Method) 一.引言 提到模板,大家肯定不免想到生活中的"简历模板"."论文模板"."Word中模版文件"等,在现实生活中,模板的概念就是--有一个规定的格式,然后每个人都可以根据自己的需求或情况去更新它,例如简历模板,下载下来的简历模板的格式都是相同的,然而我们下载下来简历模板之后我们可以根据自己的情况填充不同的内容要完成属于自己的简历.在设计模式中,模板方法模式中模板和生活中模

PHP设计模式——模板模式

声明:本系列博客参考资料<大话设计模式>,作者程杰.              模板模式准备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现.先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现.         UML类图:                  角色:                  抽象模板角色(MakePhone):抽象模板类,定义了一个具体的

设计模式学习笔记(八)—Template Method模式

<设计模式>一书对Template Method模式是这样描述的: 定义一个操作中算法的骨架,而将一些步骤延迟到子类中.不改变算法的结构而重新定义它的步骤. 我的理解:定义一个抽象类或者说接口,在它的内部定义一些抽象的方法(供TemplateMethod调用的步骤)和一个TemplateMethod方法(非抽象方法),封装了这些抽象方法的接口或抽象类就是骨架.而将它的实现延迟到子类中,也就是用子类实现它.不改变算法的结构而重新定义它的步骤,也就是改写或者实现父类的这些非TemplateMeth

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)

原文:乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)[索引页][源码下载] 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern) 作者:webabcd 介绍 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 示例 有一个Message实体类,对它的操作有Get()方法,每次Get()之前要使用ValidateUs

【自然框架】——页面基类与设计模式(二) 模板模式

  前篇:[自然框架]--页面基类与设计模式(一)桥接模式   桥接模式的补充:(下面的一段是桥接模式里后补充的一段,桥接模式的一个小结)   什么是交接模式?引用<大话设计模式>里的定义: 桥接模式(Bridge):将抽象部分和他的实现部分分离,使他们都可以独立的变化.(P229)   不知道大家有没有看懂这个定义,至少我是没弄懂,呵呵.再引用一段<大话设计模式>的一段解释:(P232)   小菜:"我觉得交接模式所说的'将抽象部分和他的实现部分分离',还是不好理解,我

设计模式重构应用---Template Method模式

先简单介绍Template Method模式的内容和应用场景. Template Method模式也叫模板方法模式,它把具有特定步骤算法中的某些必要的处理委让给抽象方法 ,通过子类继承对抽象方法的不同实现改变整个算法的行为. 在作为抽象类的父类里,定义了一个具有固定算法并可以细分为多个步骤的模板方法(public), Template Method模式把这些可以被细分的可变步骤抽象为可以被子类重载的抽象方法(protected abstract),并通过在子类中的重载(重新定义),做到无需改变模