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

    }

  • 相关阅读:
    文件系统类型
    Linux VFS分析(二)
    VFS(Virtual File System)
    shell语言
    linux VFS 之一 :虚拟文件系统的面向对象设计思想
    分层利器 facade
    微内核与面向组件
    从操作系统内核看设计模式--linux内核的facade模式
    软件架构模式
    联系的度量
  • 原文地址:https://www.cnblogs.com/onlytiancai/p/214083.html
Copyright © 2011-2022 走看看