设计模式(一)单例模式
前言:设计模式就是在软件发展过程中,根据类似的一些应用场景,总结并沉淀下来的一套套经典解决方案,分为三大类型:创建型、结构型、行为型,每种类型都针对具体的应用场景给出了不同的解决方案,但设计模式并非万能,有些场景不适用,或者会造成项目复杂度上升。
创建单例模式
方法一:
采用双if+lock的方式保证线程安全,第一个if保证线程在并发时不会进行无意义的等待,lock保证同一时刻只有一个线程能够通过,第二个if保证只实例化一次。
方法二:
在静态属性中直接实例化。
方法三:
通过静态构造函数来保证类只实例化一次,这个结果由CLR保证。
单例模式总结:
私有化构造函数,公开一个静态方法,内部维护一个静态属性保存实例。
单例模式保证了类在整个进程中只有一个实例,并且常驻内存,不会被垃圾回收,所以一般不会继承IDispose接口,单例模式解决了实例化时需要消耗大量的时间和资源,但其实又不需要实例化多次,只是使用实例方法的问题,区别于普通的静态方法,实例是可以被传递的。