zoukankan
html css js c++ java
我也设计模式——24.Template Method
模板方法很简单,只要有抽象类的地方,都可以看到这个模式:就是在父类中的非抽象方法中调用抽象方法。
基于委托的模板方法:从而具体实现方法可以不依赖于抽象类,达到解耦的目的
几点注意:
1.delegate声明在模板类中
2.在类DoCompA和DoCompB中定义与委托相同的方法
3.在Main()中组装委托链,调用tm.DoComp()意味着这是一个模板方法(非抽象中方法调用抽象方法)
public
class
TemplateMethod
{
public
delegate
void
Do();
public
Do myDo;
public
void
DoComp()
{
myDo();
}
}
public
class
DoCompA
{
public
void
c1()
{
//
Do something
}
public
void
c2()
{
//
Do something
}
}
public
static
class
DoCompB
{
public
static
void
c3()
{
//
Do something
}
}
public
class
MainClass
{
static
void
Main()
{
DoCompA a
=
new
DoCompA();
TemplateMethod tm
=
new
TemplateMethod();
tm.myDo
+=
new
TemplateMethod.Do(a.c1);
tm.myDo
+=
new
TemplateMethod.Do(a.c2);
tm.myDo
+=
new
TemplateMethod.Do(DoCompB.c3);
tm.DoComp();
}
}
查看全文
相关阅读:
DbgPrint格式 输出
string 类常用函数[转]
pragma warning[转]
连接符
ubuntu ftp server
关于dex
好
Topology中各函数调用顺序
C# 错误捕捉
操作word,Excel,PPT
原文地址:https://www.cnblogs.com/Jax/p/913954.html
最新文章
javascript多物体运动案例:多物体淡入淡出
JavaScript中.、[]与setAttribute()在设置属性上的区别
JS多物体宽度运动案例
JS缓冲运动案例:右侧居中悬浮窗
JS缓冲运动案例:右下角悬浮窗
绝对定位元素若无已定位的祖先元素,它是相对于什么进行定位的?
B-Tree
postgresql磁盘存储结构
session 与 cookie的区别
正向代理和反向代理
热门文章
Elasticsearch6.x 模块 modules
Elasticsearch6.x indices apis(索引api)
Elasticsearch6.x Mapping详解
Elasticsearch6.x查询api
Elasticsearch6.x索引api
Elasticsearch6.x文档API之读写文档
类成员和对象成员
类数据成员
类成员函数[转]
在成员函数内定义static变量
Copyright © 2011-2022 走看看