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();
}
}
}
查看全文
相关阅读:
jdbc连接数据库报ORA-12519错误
Open CV 七种常见阈值分割
开博第一天
UIWebView的使用---safri
转义符
UIKIT_EXTERN 的简单用法
iOS 基础 --- tableView的使用(一)
iOS基础 --- 如何监听一个控件(UITextField篇)
objective-C和C --- 《位运算》的使用(一)
assin与weak的区别
原文地址:https://www.cnblogs.com/onlytiancai/p/214083.html
最新文章
HTTP2和 HTTPS来不来了解一下?
学习 TCP 三次握手和四次挥手
Nginx URL重写(rewrite)配置及信息详解
lind 语 api 数据的安全性 第四弹
学习 lind UML 资源 十月 第二弹
学习 携程 DAL 十月第一坛
学习 lind api 十月 第一弹
.NET Core Install for Ubuntu 14.04
FastDF step by step
window和 linux 在一起 ios和 android在一起 net和js在一起
热门文章
C# 的 客户端 去实现 C++ 的 连连看
spring aop与事务配置
事务及其特性
使用fn函数控制页面显示内容
fmt标签进行格式化
oracle 连接 异常 Acquisition Attempt Failed!!! Clearing pending acquires.
index_jsp._jspInit
Error configuring application listener of class org.springframework.web.context.
svg自定义菜单的动态实现
js和Jquery对select的操作
Copyright © 2011-2022 走看看