zoukankan      html  css  js  c++  java
  • 类与类之间的隔离不要与陌生人说话。

    根据我的理解,要降低类之间的耦合,那么应该尽量让他们之间不要直接打交道。
    或者正确的说,两个分工很明确的类,应该各自管理自己的东西,而不要去“打听”其他类的东西。
    举个例子:
    需求是这样的:
    当一个类更新了数据后,需要发送邮件通知相关人员。
    代码一:

    public DataAccess()
            
    {
                
    //
                
    // TODO: 在此处添加构造函数逻辑
                
    //
            }

            
    public void UpdateData(Data data)
            
    {
                
    //
                //直接初始化myMail类,并调用发邮件方法。
                
    //完成数据更新后,利用mail通知

                new myMail().SendMail(mail);
            }

        }

        
    public class myMail
        
    {
            
    public myMail()
            
    {
            }

            
    public void SendMail(MailArgs ex)
            
    {

            }

        }

    代码二
    专门定义一个事件类,来接受来之于数据处理类的触发事件,并在事件类里面来发送邮件。
    那么作为数据更新类,只负责做好数据更新。
    交由一个中间类来处理它的事件。

        public class DataAccess        
        
    {
            
    protected eventClass e;
            
    public DataAccess()
            
    {
                
    //
                
    // TODO: 在此处添加构造函数逻辑
                
    //
                e = new eventClass(this);
                
            }

            
    public void UpdateData(Data data)
            
    {
                
    //

                
    //利用事件通知
                if(updateEvent!=null)
                    updateEvent(
    this);
            }

            
    定义事件
        }


        
    public class eventClass
        
    {
            
    public eventClass(DataAccess a)
            
    {
                a.updateEvent 
    +=new Fiberxon.HR.Biz.DataAccess.UpdateEventHandler(a_updateEvent);
            }


            
    private void a_updateEvent(object sender)
            
    {
                
    new myMail().SendMail(ex);
            }

        }



        
    public class myMail
        
    {
            
    public myMail()
            
    {
            }

            
    public void SendMail(MailArgs ex)
            
    {

            }

        }

    }




     

  • 相关阅读:
    包括”/“排除”设置禁用了加载功能。
    如何打造高质量的机器学习数据集?
    机器学习项目流程(一)初探数据集
    java 转义与反转义
    jfinal 获取刚保存的对象的主键 ,该主键在数据库中自增
    凤凰架构:构建可靠的大型分布式系统 ISBN:9787111683919 -推荐
    STC89C52控制74HC595,74HC138双色16x16点阵屏循环显示汉字
    STC89C52驱动MAX7219LED点阵级联, 文字滚动效果
    STM32F407VET6烧录出现flash download failed target dll has been cancelled
    DS1302与STC12的连接电路和驱动实现
  • 原文地址:https://www.cnblogs.com/king_astar/p/44752.html
Copyright © 2011-2022 走看看