例如,当系统运行时,我们需要加载一些配置和属性 。这些配置和属性必须存在并且是公共的 。同时 , 它们需要在整个生命周期内存在,所以只需要一个副本 。这时候如果我再需要的时候需要一个新的,然后再给他赋值,显然是浪费内存 , 再赋值也没有意义 。所以这个时候我们需要singleton模式或者静态方法来维护一个且只有一个副本,但是这个时候这些配置和属性都是通过面向对象编码得到的,所以要用singleton模式,或者不是面向对象,但是它本身的属性应该是面向对象的 。虽然我们可以用静态方法解决问题 , 但最好的解决方案应该是singleton模式 。
从功能上讲,singleton模式可以控制单例的数量;可以进行有意义的推导;对实例的创建有更自由的控制;
三 。其他:
数据库连接可以是单例的吗?
如果只是简单的在SingleTon对象中封装一个connection对象,那是错误的,所以连接池中有多个链接可用 。如果使用singleton , 访问WEB时只能使用一个数据库链接 。那不是死得很惨吗?
然而,单例模式可以用在连接池中 。例如,在初始化期间创建100个连接对象 , 然后在需要时提供一个 。用后放回水池 。我们使用单例模式来确保只有一个连接池 。
再比如 , 调用数据库表的类是用DAL层写的 。当这个类应用于BLL层时,如果每次都是新创建的,就需要频繁的创建和回收 。但是DAL层中没有与这个类中的对象相关的值变量,所以没有必要每次都创建一个新的 。此时,您可以使用singleton模式来创建这个DAL实例 。
- 红酒倒进杯子为什么会有泡沫
- 北宋时期与其交战的交趾国是不是越南,为什么不是越国
- 为什么枸杞吃完舌头是红色的
- 饮食上如何控制扁平疣生长 扁平疣为什么越长越多
- 为什么车厘子苦
- 文莱这么小为什么没人攻打 文莱是哪个国家
- 鱼池养不活鱼 海鲜池鱼为什么养不活
- 两癌筛查前后注意事项 两癌筛查为什么3年一次
- 钢价为什么会涨 银价会涨吗
- 手足口病为什么会发烧 手足口病是什么疾病
