开发项目中把BLL和DAL分开,在BLL调用DAL的代码。一、在DAL中使用静态方法,不创建实例直接调用(大概有很多人都使用这种方式开发 )class DAL
{
public static string GetUserName(...);
}
在BLL中调用:
DAL.GetUserName();二、在DAL中使用实例方法,采用静态成员模式(或Singleton)通过实例来调用:
class DAL
{
public static readonly DAL dal = new DAL();
public string GetUserName(...);
}
在BLL中调用:
DAL.dal.GetUserName();三、在DAL中使用实例方法,每次调用之前先创建DAL对象的实例:
class DAL
{
public string GetUserName(...);
}
在BLL中调用:
DAL dal = new DAL();
dal.GetUserName();       我不太理解静态方法和实例化方法
一般都喜欢上面那样写
但不太理解这三种方法到底有什么实质的优缺点

解决方案 »

  1.   

    实例化的类一般都是有自己的内部数据有自己的生存周期.各个实例化后的对象之间互不相干,独立运行.
    静态方法和实例方法是一样的,在类型第一次被使用时加载。调用的速度基本上没有差别。  
    静态方法不用创建实例就可调用,比较简单从面向对象的角度上来说,在抉择使用实例化方法或静态方法时,应该根据是否该方法和实例化对象具有逻辑上的相关性,如果是就应该使用实例化对象 反之使用静态方法。这只是从面向对象角度上来说的。  
    如果从线程安全、性能、兼容性上来看 也是选用实例化方法为宜