类与类之间的隔离不要与陌生人说话。

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

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)
        
{

        }

    }

}




 

原文地址:https://www.cnblogs.com/king_astar/p/44752.html