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();
}
}
查看全文
相关阅读:
服务器上往Mongo导入json文件里的数据
在Flask蓝图中使用动态URL前缀
python 的 optparser库
lowB 三人组
Linux基础介绍
html的q标签、blockquote标签
单冒号伪元素和双冒号伪元素
CSS中的伪元素选择器
CSS中的选择器
CSS中的关系选择器
原文地址:https://www.cnblogs.com/Jax/p/913954.html
最新文章
MongoDB与关系数据库的对比
SSI服务端包含技术
slot-scope 插槽 的使用 ——'<template slot-scope="page">'
确定Git与GitHub连接起来
Vue —— You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use /* eslint-disable */ to ignore all warnings in a file.问题
第26课
第25课
第24课
第23课
第22课
热门文章
GDB调试工具
第21课
第20课
第19课
第18课
linux 系统如何查看系统日志
Python中 sys.argv[]的用法简明解释
Time
xml(可扩展标记语言)
python里用os.listdir和os.walk可以获得文件的路径
Copyright © 2011-2022 走看看