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

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

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

    離弦之Ray

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      55 Posts :: 0 Stories :: 33 Comments :: 0 Trackbacks

    #

     

    Decorator Pattern其實早就接觸過了,從java的輸入語句中可見一斑InputStream in = new BufferedInputStream(new FileInputStream(“test.txt”)); 其中BufferedInputStream FileInputStream 都是InputStream的子類,通過包含關系,讓外圍的類包含內部那個類的功能及數(shù)據,說的形象一點,就是在內部那個類外面加了一層裝飾。這也是裝飾模型最核心的概念。

    Factory Pattern

    書中舉了匹薩店的例子,一開始的類,將制作不同類型匹薩的方法都包含在里面,整個類顯得很冗余。順著正常的思路,將制作匹薩的方法從這個類里面剝離出去單獨形成一個類,這個類就像生產對象的工廠,只要你告訴它該生產的產品的型號,它就生產對應的對象再發(fā)送給客戶。

    按照書中的例子,如果匹薩店開在同一個城市以內,匹薩的風味多樣,那么上述的模式很好地實現(xiàn)了上面的功能。但如果是連鎖店,每個地方的風味不同呢?……

    是的,每個地方的風味不同,但同一個地方不同匹薩的種類卻相當有限。也就是說可以有一個匹薩店父類,然后各地的分店是這個父類的子類。而其中最重要的制作匹薩的方法在父類中被聲明為虛函數(shù),由各個具體的子類來實現(xiàn)。這樣“工廠”又被搬回具體的類中間。

    具體如何使用,我個人覺得是要看情況的。上面兩個是工廠模式的兩種表現(xiàn)形式。

        對于后一種模式,里面用到的對象,比如例子中匹薩的原材料,同樣可以用工廠模式來實現(xiàn),這樣程序的結構就相當靈活了。

    posted @ 2007-09-10 23:21 離弦之ray的技術天空 閱讀(234) | 評論 (0)編輯 收藏

     

           這是Head First Design Pattern里面介紹的第二個Pattern,叫做Observer Pattern,其核心概念就是一種一對多的關系。

    其中的“一”,類似于定報紙系統(tǒng)的發(fā)送方,而“多”就是訂閱方。當有新的“報紙”時,發(fā)送方將最新的報紙送達訂閱方手中。發(fā)送方維護著一個訂閱方的列表。

    文中通過一個氣象站的例子來解說這個模式。WeatherData實現(xiàn)Subject接口,里面包括所要傳送的private 數(shù)據,還有注冊Observer和去除Observer的方法。當數(shù)據有所更新時調用measurementChanged方法,這個方法再調用notifyObservers方法。

    而在Observer那端,有一個subject對象的私有數(shù)據,通過構造函數(shù)將要注冊的Subject作為參數(shù)來對它進行初始化,以此建立ObserverSubject的聯(lián)系。

    最后還介紹了java那建的Observer模式。通過繼承Observable來成為Subject,通過實現(xiàn)Observer接口來成為Observer。但其有一定弊病,因為java不支持多繼承,這就限制了使用這個模式的靈活性。所以我覺得以后如果真的用到Observer模式還是自己編程比較好。

    posted @ 2007-09-06 13:26 離弦之ray的技術天空 閱讀(182) | 評論 (0)編輯 收藏

    ??? 好久沒進入linux系統(tǒng)了,今天心血來潮,一進去,想玩一下更新系統(tǒng)。然后就從想用那個圖形界面的更新程序。可惜阿,點上去都說有一個程序正在讀取軟件信息。于是重啟,但還是如此。
    ??? 突然報出有240個軟件包可以更新,原來是自動更新在作怪。

    ??? 然后就順理成章地點吧,還挺順利,它就開始更新了。但更新著就在那不動了,奇慢無比。

    ??? 在老婆的指導下,我上網查了一下yum的用法。

    ??? 打開終端。
    ??? 首先使用yum list來查看更新列表,刷的一下出來好多。
    ??? 然后使用yum update,它會檢查每個要更新的軟件包的頭,得到一些信息,包括軟件包的大小等等。

    ??? 會計算出總的要下載的大小,問你是否要下載。
    ??? 乖乖,一共590m, 我選擇了y,開始下載……

    ??? 漫長的等待。
    ??? 然后會提示你,你再選擇y確定一下就好。
    ??? 弄完后半死,重啟一下后一切正常。

    ??? 但重啟時發(fā)現(xiàn),啟動時選擇系統(tǒng)的時候linux有了兩個選項,只有版本信息的微小差異。倒是不影響你選擇進入linux
    ??? 就是看得不是很爽。于是上網搜索了一下,知道這個信息由 文件系統(tǒng)/boot/grub/grub.conf來決定。
    ??? 于是研究了一下它,刪掉了那個版本比較舊的選項,再把默認啟動系統(tǒng)改為default = 1 (因為現(xiàn)在是兩個從0開始編號,windows是1,一開始三個的時候,windows是2)

    ???? 至此,更新徹底完成!
    posted @ 2007-02-15 01:43 離弦之ray的技術天空 閱讀(289) | 評論 (0)編輯 收藏

    ??? 考研歸來,不甚理想,等成績中。
    posted @ 2007-02-14 22:13 離弦之ray的技術天空 閱讀(207) | 評論 (1)編輯 收藏

    復習考研中…… 這里就暫不耕耘了……
    posted @ 2006-10-14 10:28 離弦之ray的技術天空 閱讀(105) | 評論 (0)編輯 收藏

    僅列出標題
    共11頁: First 上一頁 3 4 5 6 7 8 9 10 11 下一頁 
    主站蜘蛛池模板: 亚洲人成在线播放| 久久久久亚洲AV无码专区首| 亚洲www77777| AV免费网址在线观看| va天堂va亚洲va影视中文字幕 | 人成午夜免费视频在线观看| 亚洲电影一区二区| 99热这里只有精品6免费| 亚洲高清视频在线播放| 最近中文字幕电影大全免费版 | 亚洲一区二区在线免费观看| 亚洲国产精品免费视频| 18禁美女黄网站色大片免费观看 | 国内精自视频品线六区免费| 精品亚洲AV无码一区二区| 免费观看又污又黄在线观看| 91青青国产在线观看免费| 亚洲最新在线视频| 免费无码成人AV片在线在线播放| 亚洲日韩精品无码一区二区三区 | 在线观看午夜亚洲一区| 免费在线观看一级片| 亚洲国产成人在线视频| 天天干在线免费视频| 亚洲欧洲日本国产| 永久黄网站色视频免费| 四虎影视久久久免费观看| 国产精品亚洲а∨无码播放| 亚洲AV无码资源在线观看| 亚洲精品国产高清嫩草影院| 亚洲av无码无线在线观看 | 亚洲人成网站影音先锋播放| 色窝窝免费一区二区三区| 成a人片亚洲日本久久| 亚洲国产a∨无码中文777| 一个人看的在线免费视频| 久久亚洲一区二区| 国产精品免费看久久久无码| www免费黄色网| 亚洲伊人久久大香线蕉影院| 亚洲情a成黄在线观看|