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();
            }
            
        }

    }

  • 相关阅读:
    水晶报表开发
    ASP.NET页面刷新方法总结
    DataList获取当前ID
    flexviewer让指定slid值对于的图层可见
    WKT
    消息的分类
    MFC画图
    MFC画文字DrawText,GetTextExtent,GetTextMetrics
    djvu是什么
    代码提示插件 Visual Assistxv
  • 原文地址:https://www.cnblogs.com/onlytiancai/p/214083.html
Copyright © 2011-2022 走看看