首页 > 生活 > 生活妙招

为什么要用单例模式(为什么要有单例设计模式)

常驻编辑 生活妙招 2022-02-12 模式   要有   要用
pxO拜客生活常识网

如果一个方法和他所在类的实例对象无关,那么它就应该是静态的,反之他就应该是非静态的。如果我们确实应该使用非静态的方法,但是在创建类时又确实只需要维护一份实例时,就需要用单例模式了。pxO拜客生活常识网

比如说我们在系统运行时候,就需要加载一些配置和属性,这些配置和属性是一定存在了,又是公共的,同时需要在整个生命周期中都存在,所以只需要一份就行,这个时候如果需要我再需要的时候new一个,再给他分配值,显然是浪费内存并且再赋值没什么意义,所以这个时候我们就需要单例模式或静态方法去维持一份且仅这一份拷贝,但此时这些配置和属性又是通过面向对象的编码方式得到的,我们就应该使用单例模式,或者不是面向对象的,但他本身的属性应该是面对对象的,我们使用静态方法虽然能同样解决问题,但是最好的解决方案也应该是使用单例模式。pxO拜客生活常识网

从功能上讲:单例模式可以控制单例数量;可以进行有意义的派生;对实例的创建有更自由的控制;pxO拜客生活常识网

三、其他:pxO拜客生活常识网

数据库连接能不能做SingleTon?pxO拜客生活常识网

如果是简单地把一个connection对象封存在单例对象中,这样是错误的,因此连接池里有多个链接可以用,如果使用SingleTon,那在WEB访问时,就只能用一个数据库链接,那不是死的很惨?pxO拜客生活常识网

但是链接池可以使用单例模式,初始化的时候创建譬如100个connection对象,然后再需要的时候提供一个,用过之后返回到pool中,我们用单例模式,是保证连接池有且只有一个。pxO拜客生活常识网

再举个例子,比如DAL层写好一个调用数据库表的类,在BLL层应用此类时,如果每次都new创建的话需要频繁的创建和回收,而DAL层这个类里又没有和对象相关的值变量,所以不需要每次都new一个,这时候就可以用单例模式来创建这个DAL实例。pxO拜客生活常识网

pxO拜客生活常识网

相关阅读:

  • 小米MIX FOLD折叠屏将全面进化!系统大版本更新 PC模式
  • 线刷宝怎么样(recovery模式还有密码怎么办)
  • 优洁士怎么样(优洁士推销是什么模式)
  • 艾瑞泽5自动挡怎么样(艾瑞泽5运动模式和经济模式)
  • aoc显示器怎么样(aoc显示器游戏模式选哪个好)
  • ios11怎么分屏(iphone11分屏模式怎么开)
  • 只读模式怎么取消(怎么把文件取消只读)
  • 分销模式有哪些(如何对分销渠道进行管理)
  • 经营方式有哪些(经营市场的基本模式有哪四种)
  • 采购模式有哪些(四种采购模式)
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。