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();
}
}
查看全文
相关阅读:
人口数据分析
爬虫:单线程+多任务异步协程
Python脚本实现在cmd执行相关命令
Markdown 标记语言指北
索引/代码块目录
无题
[模板] 斯坦纳树
[模板] 欧拉回路
[模板] 计算几何2: 自适应Simpson/凸包/半平面交/旋转卡壳/闵可夫斯基和
[模板] 快速沃尔什变换
原文地址:https://www.cnblogs.com/Jax/p/913954.html
最新文章
javascript继承笔记
solr批量操作使用
IDEA利用mybatis-generator自动生成dao和mapper
SpringBoot 单元测试
启动/关闭Spring boot服务脚本
spring cloud 微服务应用间通讯
Nginx服务监听端口修改启动bug
Centos7安装dubbo管理控制台
Centos7安装zookeeper
Centos7下安装Redis
热门文章
安装git和配置
linux安装maven
磁盘直接挂载
Nginx敏感信息泄露漏洞(CVE-2017-7529)
go二叉树、struct、接口
mysql高级内容学习总结
从一个小需求感受Redis的独特魅力
redis持久化RDB与AOF
python安装numpy、scipy、gensim以及报错unable to import 'smart_open.gcs', disabling that module处理
KNN手写数字识别
Copyright © 2011-2022 走看看