使用静态构造函数与使用单件

今天需要编写一个AuthenticationProviderFactory的工厂类,需要向外部提供注册、注消和获取IAuthenticationProvider的服务,并且在构造时能够将配置中的信息获取并设置一些相应的值。
这里我想了很长时间是使用单件还是使用静态方式来提供这三个功能。虽然使用单件与使用静态在原则上很好区分(如果将这个类是工具集则使用静态否,如果表示的是一种概念使用单件),但具体做起来就不那么好做了。
所以我就想了一下使用那一种方式使用和维护起来更加方便,使用静态方式使用起来肯定要方便很多,但先需要获取配置信息所以就必须编写一个静态构造器来设置配置的值。而如果使用静态构造来初始化则当配置信息出错时就会引发调用失败,并且这种失败不会显示出明确的信息,同时还会使用整个应用程序崩溃。而如果使用单件则当调用这个单件的过程中调用初始化配置,如果配置错误则会在这里引发,如果不调用本方法则程序不会出现问题,并且其它部分还可以正常运行这对程序的容错性有很大帮助。
所以最后我还是决定采用单件来处理这个问题,并且也让我想到在具体的使用过程中

尽量不要使用静态构造器,如果必须则必须要保证静态构造器不会产生异常才行啊。

posted on 2008-06-03 10:52  蓝色游骑兵  阅读(249)  评论(0编辑  收藏  举报

导航