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();
}
}
查看全文
相关阅读:
二维数组中的查找
浅析Java的Object类
Alan Turing的纪录片观后感
近期学习docker遇到的一些问题
eclipse(STS)安装jd-eclipse插件实现查看API源代码功能
deepin配置Oracle JDK
两个有序链表的合并
Maven 项目中各包单独打成jar包
一次性密码 && 身份认证三要素
HTTPS工作流程
原文地址:https://www.cnblogs.com/Jax/p/913954.html
最新文章
Java 8 新特性之 Lambda 表达式、函数式接口、方法引用、构造器引用、Stream API
记一次云服务器被挖矿的经历
加密算法的 Java 使用方法:MD5,SHA1,AES,RSA
Java 中的锁与死锁
HashMap 底层实现原理
MySQL 报 Epression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题
LINUX笔记6(SSH远程登陆)
linux系统启动后,You are in emergency mode.After logging in,.........
绝对免费的PDF转各种姿势(word,ppt等)
LINUX笔记5(进程管理)
热门文章
LINUX笔记4(文件及权限管理)
跨vlan通信
Excel规划求解无法使用
你的病毒和威胁防护由你的组织管理
一次深度学习之旅
Xshell向云服务器(linux系列)上传和下载数据
重建二叉树
旋转数组的最小数字
用两个栈实现队列
浅析Java数据类型
Copyright © 2011-2022 走看看