一般在会将类中的依赖对象用字段、属性的方式存放起来,来方便其它的成员函数去使用,入下面代码所示:
1 public class DomainBLL 2 { 3 private DomainDAL domainDAL = new DomainDAL(); 4 5 public Domain GetDoaminById(int id) 6 { 7 return domainDAL.GetDomianById(id); 8 } 9 }
但是有时候字段成员的实例化并不只是一句new返回的,可能包含若干条语句,下面是我在一本书上看到的几行代码:
1 protected static ILog log = new Func<ILog>(() => 2 { 3 log4net.Config.XmlConfigurator.Configure(); 4 return LogManager.GetLogger(typeof(BaseFixture)); 5 }).Invoke();
上面的代码就是通过Func<ILog>返回了一个ILog对象给字段log,可以看到函数体内有两条语句。当然有其它很多的方法做这个事,比如改为属性和函数,再或者在构造函数里面去初始化。
使用函数比较麻烦,使用的时候还得去调用一下函数,而属性也只是少写了个括号,实则和函数调用一样,最主要的是我觉得,每一次使用依赖对象的时候都去重新调用函数返回会有效率上面的问题。