zoukankan
html css js c++ java
蛙蛙请教:如何利用委托实现多个方法同时调用.
using
System;
namespace
ConsoleApplication1
{
public
delegate
void
AddContainer();
public
class
Class1
{
public
static
AddContainer AddCont
=
null
;
private
Class1()
{
}
public
static
void
AddAllContainer()
{
Class1.AddCont();
}
}
public
class
Class2
{
public
Class2()
{
Class1.AddCont
+=
new
AddContainer(
this
.Method1);
Class1.AddCont
+=
new
AddContainer(
this
.Method2);
}
private
void
Method1()
{
Console.WriteLine(
"
111
"
);
}
private
void
Method2()
{
Console.WriteLine(
"
222
"
);
}
}
public
class
Class3
{
public
static
void
Main(
string
[] args)
{
//
大家看下一句哦,我想把下一句去掉也能在调用Class1.AddAllContainer()的时候
//
同时也调用Class的两个私有方法,怎么改一下这个代码呀?是这样的,Class1相当于
//
系统底层架构,而Class2相当于业务逻辑,Class3呢就是表示层,表示层Class3在使用
//
Class2的业务逻辑的时候需要先用Class1加载元数据以创建一组业务逻辑使用的容器
//
为了达到三层之间的低耦合效果,我不想在改动业务逻辑代码的时候同时还要改动底层
//
架构和表示层调用的代码,我在Class2的构造函数里给Class1的委托增加了两个回调
//
函数,可是表示层Class3不实例化它的话,它就永远不执行,如果业务层没增加一个action
//
都要改动一下Class3的Main方法的话会很麻烦,大家给看看怎么改能实现我的效果.
Class2 c
=
new
Class2();
Class1.AddAllContainer();
Console.ReadLine();
}
}
}
查看全文
相关阅读:
170929-关于md5加密
170911-关于maven的知识点
opencv-python 学习初探1
使用PDFminer3k解析pdf为文字遇到:WARING:root:GBK-EUC-H
Python time strptime()与time strftime()
chromedriver下载安装
计数
高效的几个小技巧
phantomjs在win10下的安装
win10下安装lxml
原文地址:https://www.cnblogs.com/onlytiancai/p/214083.html
最新文章
EventBus使用小记
android微信分享遇到的问题
Nginx作为缓存服务
Nginx作为负载均衡服务
Nginx作为代理服务
Nginx跨域访问场景配置和防盗链
Nginx 浏览器缓存
nginx 作为静态资源web服务
nginx 请求限制和访问控制
nginx 模块
热门文章
nginx 默认配置语法和日志的format
Nginx 安装目录 和 编译参数
SVN提交出错--URL access forbidden for unknown reason
BootStrap 用法
SSM+PageHelper 使用
180128-----Java面试题
String.format
StringUtils.join()
数组和字符串的转换
20171016-进程、线程问题
Copyright © 2011-2022 走看看