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中的具体方法,以便客户端访问.
查看全文
相关阅读:
openCV的imread()函数
python 文件操作(open函数)
opencv函数解析
python face_reconnition库函数解析
python—OpenCV2中 cv2.VideoCapture(),read(),waitKey()的使用
数据结构之各排序算法
C语言格式符
利用函数对数组排序,是否会修改原数组
保研夏令营证书扫描工具推荐
一些小技巧
原文地址:https://www.cnblogs.com/xiaobaigang/p/911018.html
最新文章
bzoj3894: 文理分科
bzoj2039: [2009国家集训队]employ人员雇佣
bzoj2127: happiness
bzoj3661: Hungry Rabbit
bzoj1449: [JSOI2009]球队收益&&bzoj2597: [Wc2007]剪刀石头布
bzoj1927: [Sdoi2010]星际竞速
bzoj3504: [Cqoi2014]危桥
bzoj1066: [SCOI2007]蜥蜴
bzoj2756: [SCOI2012]奇怪的游戏
bzoj1305: [CQOI2009]dance跳舞
热门文章
Genymotion模拟器配置与使用
Android studio安装与配置
如何查看手机电量消耗是否正常?
Python读写csv文件
获取app启动时间
Android 中如何计算 App 的启动时间?
Python2.7版本:定义类时为什么要继承object类?
AVD模拟器怎么配置上网
unittest测试框架
openCV的waitKey()函数
Copyright © 2011-2022 走看看