<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-19  評論-2  文章-1  trackbacks-0
    不變模式:
           
            不變模式可以增強對象的強壯性,不變模式準(zhǔn)許多個對象共享一個對象,這降低了對該對象進行并發(fā)訪問時的同步化開銷。如果要修改一個不變對象的狀態(tài),則需要創(chuàng)建一個新的對象,并將其存入新的對象里。不變模式只涉及到一個類,一個類的內(nèi)部狀態(tài)一旦被創(chuàng)建以后,在整個期間都不會發(fā)生變化。他有兩種一種是強不變模式和弱不變模式。
            弱不變模式:
    首先滿足沒有方法可以改變對象的狀態(tài),則對象一旦被創(chuàng)建之后,對象的狀態(tài)就不會改變。二該對象的所有的屬性都是私有的,并且不準(zhǔn)許聲明任何公有的方法來改變他們。三這個對象所引用的對象也應(yīng)該是不變的對象,如果在初始化時應(yīng)用了一個可變的對象,則應(yīng)該對該可變對象進行復(fù)制一份,而不要使用原來的拷貝。這種模式的缺點是他可以用子類,并且子類可以是可變的對象。可變的子類可能一修改父類對象的狀態(tài),從而可能會允許外界修改父對象的狀態(tài)。

    問題:
           為什么說可變的對象可以修該父類對象的狀態(tài)呢?怎樣做?

    強不變模式首先要滿足弱不變模式,然后將這個類聲明成final類,則它變不可能有子類了,并且也將該對象所考慮到的所有方法聲明為final。
    不變模式與享元模式有很大的相同處,他們的對象狀態(tài)都有要求不隨環(huán)境的變化而變化,不過享元模式的內(nèi)涵狀態(tài)在不影響享元對象的共享時,可以為可變的。不變模式對對象的要求要比享元模式對對象的要求更嚴格。


    posted on 2005-08-14 23:39 sky 閱讀(646) 評論(2)  編輯  收藏

    評論:
    # re: Immutable 不變模式 2008-04-13 16:22 | wangsh
    Good question,I Think in the java language,The weak immutable and stronge immutable is undiference!   回復(fù)  更多評論
      
    # re: Immutable 不變模式 2009-09-16 11:45 | TYY
    我認為這應(yīng)該和多態(tài)有關(guān)系吧!比如toString()方法,Base base = new Sub();
    System.out.println("base = " + base);打印出的結(jié)果其實是Sub對象的!  回復(fù)  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 色婷五月综激情亚洲综合| 亚洲av永久无码精品古装片| a毛片免费全部播放完整成| 亚洲av无码专区首页| 亚洲男人的天堂在线| 亚洲国产第一页www| 亚洲人成网站在线观看播放| 免费jlzzjlzz在线播放视频| 成人免费看吃奶视频网站| 国内精品免费麻豆网站91麻豆| 国产午夜不卡AV免费| 小草在线看片免费人成视久网| 国产日韩一区二区三免费高清| 丝袜足液精子免费视频| 久久国产精品国产自线拍免费| A片在线免费观看| 5g影院5g天天爽永久免费影院| 在线观看的免费网站无遮挡| 亚洲最大免费视频网| 24小时日本在线www免费的| 国产午夜免费福利红片| 亚洲欧洲日本在线| 亚洲第一页在线视频| 国产精品亚洲精品久久精品 | 国产99视频精品免费视频7| 亚洲成a人片在线播放| 亚洲av鲁丝一区二区三区| 亚洲免费人成视频观看| 日韩在线观看视频免费| 午夜免费啪视频在线观看| 午夜一级毛片免费视频| 国产亚洲综合一区柠檬导航| 亚洲乱码一二三四区乱码| 一级毛片免费在线| 国产1024精品视频专区免费| 国产亚洲精品线观看动态图| 久久精品国产亚洲AV久| 国色精品va在线观看免费视频 | 午夜亚洲av永久无码精品| 亚洲精品熟女国产| 久久精品中文字幕免费|