<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
    不變模式:
           
            不變模式可以增強對象的強壯性,不變模式準許多個對象共享一個對象,這降低了對該對象進行并發訪問時的同步化開銷。如果要修改一個不變對象的狀態,則需要創建一個新的對象,并將其存入新的對象里。不變模式只涉及到一個類,一個類的內部狀態一旦被創建以后,在整個期間都不會發生變化。他有兩種一種是強不變模式和弱不變模式。
            弱不變模式:
    首先滿足沒有方法可以改變對象的狀態,則對象一旦被創建之后,對象的狀態就不會改變。二該對象的所有的屬性都是私有的,并且不準許聲明任何公有的方法來改變他們。三這個對象所引用的對象也應該是不變的對象,如果在初始化時應用了一個可變的對象,則應該對該可變對象進行復制一份,而不要使用原來的拷貝。這種模式的缺點是他可以用子類,并且子類可以是可變的對象。可變的子類可能一修改父類對象的狀態,從而可能會允許外界修改父對象的狀態。

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

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


    posted on 2005-08-14 23:39 sky 閱讀(640) 評論(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!   回復  更多評論
      
    # re: Immutable 不變模式 2009-09-16 11:45 | TYY
    我認為這應該和多態有關系吧!比如toString()方法,Base base = new Sub();
    System.out.println("base = " + base);打印出的結果其實是Sub對象的!  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲日韩国产一区二区三区| 好男人视频社区精品免费| 久久久久亚洲AV无码专区桃色| 亚洲AV日韩AV无码污污网站| 大学生a级毛片免费观看| 亚洲精品伦理熟女国产一区二区| 久久综合AV免费观看| 亚洲AV无码一区二区三区网址| 日韩视频在线免费观看| 在线91精品亚洲网站精品成人| 免费萌白酱国产一区二区| 一级毛片a免费播放王色| 亚洲高清国产拍精品26U| 99精品视频在线观看免费专区| 亚洲天天做日日做天天看| 国产91免费视频| 亚洲色无码国产精品网站可下载| 四虎成人免费观看在线网址| 一二三四在线观看免费中文在线观看| 亚洲日韩中文无码久久| 在线免费中文字幕| 久久精品国产亚洲av麻豆图片| 国产免费av一区二区三区| 国产精品无码永久免费888| 色婷婷六月亚洲婷婷丁香| 女人让男人免费桶爽30分钟| 四虎影视久久久免费观看| 久久久久久亚洲av成人无码国产| 波多野结衣免费在线观看| 国产精品亚洲精品爽爽| 国产av无码专区亚洲av桃花庵| 中文字幕影片免费在线观看| 一个人看的www视频免费在线观看| 亚洲情a成黄在线观看动漫尤物| 成人免费毛片内射美女APP| 一个人看的www免费在线视频| 亚洲小说区图片区| 亚洲日韩中文在线精品第一| 最近免费中文字幕mv电影| 美女被免费视频网站a| 91亚洲自偷手机在线观看|