模板模式准备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。

<?php
abstract class AbstractClass { // 抽象模板角色
public function templateMethod() { // 模板方法 调用基本方法组装顶层逻辑
$this->primitiveOperation1();
$this->primitiveOperation2();
}
abstract protected function primitiveOperation1(); // 基本方法
abstract protected function primitiveOperation2();
} class ConcreteClass extends AbstractClass { // 具体模板角色
protected function primitiveOperation1() {}
protected function primitiveOperation2(){} } $class = new ConcreteClass();
$class->templateMethod();

最新文章

  1. 关于delphi exit 继承
  2. jackrabbit学习笔记(1)
  3. C# Memcache分布式缓存简单入门
  4. 【BZOJ-4281】Związek Harcerstwa Bajtockiego 树上倍增LCA
  5. Node之pm2
  6. docke跨主机通信之gre隧道
  7. ArcGISDynamicMapServiceLayer 实现条件过滤
  8. 【转】C#中没有id 没有name C#怎么点击按钮
  9. POJ 1961 Period(KMP)
  10. 【技术文档】《算法设计与分析导论》R.C.T.Lee等&#183;第4章 分治策略
  11. Codeforces 437B The Child and Set
  12. Asp.Net中的session配置
  13. 转:nginx防DDOS攻击的简单配置
  14. mac osx 10.9 ftp server端口
  15. untiy 播放视频
  16. poj 3273 Monthly Expence 简单二分
  17. 创建Oracle的用户 create user scott identified by tiger;
  18. 计科1702冯亚杰C语言程序设计预备作业
  19. elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)
  20. PHP获取项目所有控制器方法名称

热门文章

  1. fiddler抓取手机https请求详解
  2. LeetCode(数据库):分数排名
  3. freemarker使用shiro标签(spring boot)
  4. C++ EH Exception(0xe06d7363)---捕获过程
  5. 石子合并(NOI1995)题解
  6. 干货 | column generation求解VRPTW问题 java代码分享
  7. [SNOI2019]纸牌
  8. 行业大秀:EasyEarth Show!
  9. hive select 出现问题 SemanticException
  10. 第05组Alpha冲刺(1/4)