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();
}
}
查看全文
相关阅读:
Linux下程序对拍_C++
KMP算法_模板_C++
[ CodeVS冲杯之路 ] P2952
Netty入门(七)使用SSL/TLS加密Netty程序
Netty入门(六)Decoder(解码器)
Netty入门(五)ChanneHandler
Netty入门(四)ByteBuf 字节级别的操作
Netty入门(三)构成部分
Netty入门(二)时间服务器及客户端
Netty入门(一)环境搭建及使用
原文地址:https://www.cnblogs.com/Jax/p/913954.html
最新文章
Scrapy入门操作
python3.6安装【scrapy】-最保守方法
【Django】ajax(多对多表单)
【django】form
单源最短路_SPFA_C++
[ CodeVS冲杯之路 ] P1197
BZOJ1407_NOI2002_荒岛野人_Savage_C++
欧几里得算法与扩展欧几里得算法_C++
CodeVS1747_NOI2002_荒岛野人_Savage_C++
sort函数_C++
热门文章
DP+贪心水题合集_C++
求LCA最近公共祖先的在线倍增算法模板_C++
什么是P问题、NP问题和NPC问题
路径方案数_mod_SPFA_记忆化搜索_C++
单源最短路模板_SPFA_Dijkstra(堆优化)_C++
哈希Hash在字符串中的应用_C++
[ CodeVS冲杯之路 ] P2492
呵呵我的手指能够数1024个数,你们都辣鸡了~
BZOJ1082_栅栏_C++
[ CodeVS冲杯之路 ] P2456
Copyright © 2011-2022 走看看