悟空模式-java-单例模式】的更多相关文章

目前已定义的java设计模式细分下来有二十余种,这篇博客主要是想从大家所熟知的孙悟空入手,阐述各个设计模式的概念和优缺点,以及他们之间的联系. 在下面介绍的每个设计模式里,都会有与西游记相关的具体案例,主要是为了方便大家理解与记忆,否则使用一些枯燥的例子,很难让人印象深刻. 在很多设计模式相关的书籍与博客中都有与孙悟空相关的代码案例,在这里,会结合<西游记>原文,尽量使用更加贴切的事例进行描述,如果你觉得所举事例不太适合,或者有更好的想法,欢迎在评论区中指出. 按笔者的理解,设计模式的作用无非…
[那座山,正当顶上,有一块仙石.其石有三丈六尺五寸高,有二丈四尺围圆.三丈六尺五寸高,按周天三百六十五度:二丈四尺围圆,按政历二十四气.上有九窍八孔,按九宫八卦.四面更无树木遮阴,左右倒有芝兰相衬.盖自开辟以来,每受天真地秀,日精月华,感之既久,遂有灵通之意.内育仙胞,一日迸裂,产一石卵,似圆球样大.因见风,化作一个石猴,五官俱备,四肢皆全.便就学爬学走,拜了四方.目运两道金光,射冲斗府.] 上面这段文字,描述了悟空出生时的场景.孙悟空只有一个,任何程序要使用孙悟空这个对象,都只能使用同一个实例…
[此是锻炼神冰铁,磨琢成工光皎洁.老君自己动钤锤,荧惑亲身添炭屑.五方五帝用心机,六丁六甲费周折.造成九齿玉垂牙,铸就双环金坠叶.身妆六曜排五星,体按四时依八节.短长上下定乾坤,左右阴阳分日月.六爻神将按天条,八卦星辰依斗列.名为上宝逊金钯,进与玉皇镇丹阙.] 在西游记第十九回[云栈洞悟空收八戒 浮屠山玄奘受心经]中,猪八戒自述了九齿钉耙的来历. 建造者模式主要用于将对象的复杂构造过程与调用者隔离开来,使得客户端不用关心产品的内部结构和构造过程,直接获取最终的产品即可. 西游记中有很多神兵神器,…
[却说那妖精与大圣斗经半日,不分胜败.行者把棒丢起,叫一声“变!”就以一变十,以十变百,以百变千,半天里,好似蛇游蟒搅,乱打妖邪.妖邪慌了手脚,将身一闪,化道清风,即奔碧空之上逃走.行者念声咒语,将铁棒收做一根,纵祥光一直赶来.] 在西游记第九十五回[假合真形擒玉兔 真阴归正会灵元]中,孙行者“殴打”玉兔精的时候,将如意金箍棒从一根化作了千百根,打得玉兔精无从招架. 这千百根金箍棒的属性应该是一样的,如果孙悟空每次都要新建一个新的金箍棒对象,然后把原有的金箍棒的属性复制过去,如此重复千百次,未免…
[一朝,王母娘娘设宴,大开宝阁,瑶池中做蟠桃胜会] 有一天,王母娘娘要在瑶池办party,就需要准备大量的食材.要知道,天上的神仙也分三六九等,九曜星.五方将.二十八宿.四大天王.十二元辰.五方五老.普天星相.河汉群神等等,不同等级的神仙在宴会中吃的东西也不一样. 为了方便管理,我们把神仙分为低级神仙.中级神仙和高级神仙,不同等级的神仙将领取到对应等级的食物,所以就有了低级神仙食物.中级神仙食物和高级神仙食物. 在前面的悟空模式-java-普通工厂模式和悟空模式-java-工厂方法模式中都介绍了…
[却说那七衣仙女自受了大圣的定身法术,一周天方能解脱,各提花篮,回奏王母说道:“齐天大圣使术法困住我等,故此来迟.”王母问道:“汝等摘了多少蟠桃?”仙女道:“只有两篮小桃,三篮中桃.至后面,大桃半个也无,想都是大圣偷吃了.及正寻间,不期大圣走将出来,行凶拷打,又问设宴请谁.我等把上会事说了一遍,他就定住我等,不知去向.直到如今,才得醒解回来.”王母闻言,即去见玉帝,备陈前事.] 在<西游记>第五回<乱蟠桃大圣偷丹 反天宫诸神捉怪>里,悟空将奉王母之命前去蟠桃园摘桃的七衣仙女定住,随…
[大圣看玩多时,问土地道:“此树有多少株数?”土地道:“有三千六百株.前面一千二百株,花微果小,三千年一熟,人吃了成仙了道,体健身轻.中间一千二百株,层花甘实,六千年一熟,人吃了霞举飞升,长生不老.后面一千二百株,紫纹缃核,九千年一熟,人吃了与天地齐寿,日月同庚.”大圣闻言,欢喜无任,当日查明了株树,点看了亭阁回府.自此后,三五日一次赏玩,也不交友,也不他游.] 在<西游记>第五回<乱蟠桃大圣偷丹 反天宫诸神捉怪>里有上面这一段关于蟠桃园里不同种类蟠桃树的描述,那么这里就用蟠桃园为…
Java中的GOF23(23中设计模式)--------- 单例模式(Singleton) 在Java这这门语言里面,它的优点在于它本身的可移植性上面,而要做到可移植的话,本身就需要一个中介作为翻译工作,以达到本地和Java的统一,但是就这点而言就相当的消耗资源,所以就Java程序员需要不断的去优化自己的代码.今天所研究的单例模式就是在这样的条件下产生的, 所谓单例模式,就是只有一个实例,在堆里面只有一个.假如我们的实例,就需要一个,但是会多次用到,这样的话就会出现很尴尬的问题. 比如: Win…
在企业级开发中,我们往往不会直接使用原生的JDBC操作来实现与数据库得连接.因为数据库的连接是一个很宝贵的资源且耗时,我们往往会在内存中引入一个资源池来统一管理数据库的连接.这个模式也被总结为一种设计模式:资源池模式和单例模式. 关于原理部分就不多做介绍了,这里也是做一个简单的原理实现. ObjectPool连接池接口 package com.test.pool; import java.util.Enumeration; import java.util.Hashtable; import j…
8.单态模式或单例模式(Singleton) 单态模式有什么用呢?想一下Adobe Photoshop ,处理两张图,会启动两个photoshop吗?多耗费内存呀! ( Consider Adobe or oracle, process two images with two adobes?),所以单态模式在公司编程是非常重要的.有很多场合都要求,对象只能存在一个,多了的话就太耗费资源.(马克-to-win) class Photoshop { /* 通过调试发现写成 static Photos…