单例设计模式1
單例
所謂單例設(shè)計(jì)模式,即時(shí)采取一定的方法保證在整個(gè)軟件系統(tǒng)當(dāng)中,對(duì)于某個(gè)類只能存在一個(gè)對(duì)象實(shí)例,并且該類只提供一個(gè)其對(duì)象實(shí)例的方法(靜態(tài)方法)
惡漢式
優(yōu)缺點(diǎn)說明:
優(yōu)點(diǎn):這種寫法比較簡(jiǎn)單,就是在類裝載的時(shí)候就完成實(shí)例化.避免了線程同步問題
缺點(diǎn): 在類裝載的時(shí)候就完成了實(shí)例化,沒有達(dá)到Lazy Loading的效果.如果從始至終都沒有使用過這個(gè)實(shí)例,就會(huì)造成內(nèi)存的浪費(fèi)
這種方式基于ClassLoader機(jī)制避免了多線程同步問題,不過,instance在類裝載的時(shí)就實(shí)例化,在單例模式中大多數(shù)都是調(diào)用getInstance方法,但是導(dǎo)致類裝載的原因有很多種,因此不能確定有其他方式(或者其他靜態(tài)方法)導(dǎo)致這個(gè)類被裝載,這時(shí)候初始化instance就沒有達(dá)到lazy loading的效果
結(jié)論: 這種單例模式可用,可能 造成內(nèi)存浪費(fèi)
代碼演示
package com.atguigu.principle.singleton.type1;/***/ public class SingletonTest01 {// 1. 構(gòu)造器私有化,外部不可以newprivate SingletonTest01() {}// 2. 本類內(nèi)部創(chuàng)建對(duì)象實(shí)例// 惡漢破不及待 new 這個(gè) 對(duì)象private final static SingletonTest01 instance = new SingletonTest01();// 3. 提供一個(gè)工友的靜態(tài)方法,返回實(shí)例對(duì)象public static SingletonTest01 getInstance() {return instance;} }更多:[http://victorfengming.gitee.io/design_pattern/](http://victorfengming.gitee.io/design_pattern/)總結(jié)
- 上一篇: pycharm python 模板配置_
- 下一篇: 双主动桥隔离双向DC-DC变换器(七)设