讨论在.NET 中通过静态初始化实现Singleton的一个致命缺点
摘要:有不少很好的文章介绍过这个主题了,因此也就不再赘述怎么实现了,都在下面的参考资料里了,一看便知。我想说的这个缺点是静态构造函数有可能发生异常,一旦静态构造函数引发异常,不仅会导致访问失败,而且依照静态构造函数只运行一次的特点,运行时将不会再次调用该构造函数,并且在程序运行所在的应用程序域的生存期内,类型将保持未初始化,导致访问失败,也就是说,第一次运行失败后,就没有再修复错误的机会了。举例来说,如果想将数据库中的某些公用数据,比如菜单,或某些权限之类的,将他们放在单例中,或者进一步将单例的数据缓存到memcached或appfabric中方便后续使用之时,假如数据库当前不可用,或者缓存服务当前
阅读全文
posted @
2011-11-01 17:54
BobLiu
阅读(1536)
推荐(1) 编辑
委托, 匿名委托, Lambda表达式, 事件的本质, 以及Observer模式.
摘要:1.委托的本质委托实现了面向对象的,类型安全的方法回调机制。委托看上去就一句话, 很简单, 但在本质上它是一个类,CLR和编译器在后台会将委托自动编译为一个类.该类继承自System.MulticastDelegate类,该类维护一个委托列表,在调用多播委托时,将按照委托列表的委托顺序而调用的。该类包括一个接受两个参数的构造函数和3个重要方法:BeginInvoke、EndInvoke和Invoke。下面是delegate委托的父类MulticastDelegate的部分代码: public abstract class MulticastDelegate : Delegate{ public
阅读全文
posted @
2011-08-31 17:03
BobLiu
阅读(684)
推荐(1) 编辑