zoukankan
html css js c++ java
TemplateMethod模式
Template Method模式的几个角色:
基类角色
:定义的抽象方法、纯虚方法(一般设置为protected),
Template
方法(是对抽象方法、纯虚方法包装).
子类角色:重写
基类
的
抽象方法、纯虚方法.
客户端角色:调用子类中的重写过的方法.
演示代码如下:
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Collections;
namespace
TemplateMethod
{
class
Program
{
public
abstract
class
Computer
//
表示电脑(基类角色)
{
protected
abstract
void
Start();
protected
abstract
void
Close();
public
void
TemplateMethod()
//
Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
{
Start();
//
开电脑
Close();
//
关闭电脑
}
}
//
子类角色
public
class
Lenovo : Computer
//
我上班用的联想电脑
{
protected
override
void
Start()
{
Console.WriteLine(
"
上班了把联想电脑打开
"
);
}
protected
override
void
Close()
{
Console.WriteLine(
"
下班了把联想电脑关闭
"
);
}
}
public
class
ComputerTest
{
public
static
void
DoTest(Computer cp)
//
早上上班要打开电脑测试
{
cp.TemplateMethod();
}
}
//
客户端角色
public
static
void
Main()
{
ComputerTest.DoTest(
new
Lenovo());
//
早上上班要打开我的联想电脑
//
Computer test=new Lenovo();
//
ComputerTest.DoTest(test);
}
}
}
Template Method模式的实质就是在基类定义一个
Template 再在子类中重写
Template中的具体方法,以便客户端访问.
查看全文
相关阅读:
【转】web测试容易被遗忘的地方
212
将博客搬至CSDN
关于Navicat连接虚拟机windows virsual pc 的mysql
Java匿名内部类继承类和实现接口
[转]文本输入框特效大集合
jquery操作select
HashMap和Hashtable的区别
Struts2+Spring+hibernate最新版本官方下载地址
Java
原文地址:https://www.cnblogs.com/xiaobaigang/p/911018.html
最新文章
mysql随机时间
mysql触发器
排查 CI Unable to load the requested file
Linux最常用命令之cd和ls
快捷键的使用
在centos上配置IP
在虚拟机上安装Linux6.5
Mysql 变量使用
DELETE ANYTHING
PHP 定界符使用
热门文章
根据用户IP获得所在城市
smarty模板中获得循环次数
字符编码笔记:ASCII,Unicode和UTF-8
session,cookies的区别
Linux rz sz配合SSH使用心得
LR常用函数分类介绍
[C]数组指针和指针数组的区别
[Linux]关于httpd apache开机自启动服务如何取消
[LR]分析 missing newline in [...] .dat文件错误
[tomcat]如何将修改Tomcat的默认端口(8080)到80端口
Copyright © 2011-2022 走看看