• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            我自閑庭信步,悠然自得,不亦樂乎.

                                                   ------ Keep life simple
            GMail/GTalk/MSN:huyi.zg@gmail.com

             

            關于文件操作的封裝處理

            File類本身并不持有文件句柄,它只是集中了一系列對文件的操作方法,如Create,Open等等。這些方法全部都是靜態的,也不進行任何的安全檢測,僅僅是直接調用pspsdk來完成任務,如果出現錯誤,則返回負值。
            File的Open等方法可以創建針對指定文件讀寫的流對象FileStream,句柄由FileStream自己創建和持有管理,File::Open只是傳達路徑信息。
            可以把File看作是一個門面,集中了對文件的所有操作,并且不需要創建File對象就可以直接執行這些操作。所以說File為文件的單一操作提供了快捷簡便的方式。
            除了幾個創建FileStream流的操作外,其他操作都不會長期占用句柄資源,遵循"句柄創建-執行具體操作-釋放句柄"的步驟。

            如果需要頻繁的操作文件,則需要一個類來長期持有句柄,避免經常性的打開和關閉文件,故此引入FileInfo類。FileInfo執行Append等操作時,都是使用事先打開的文件句柄。
            同時,FileInfo也可以創建FileStream實例,但這個時候,文件的句柄生命周期應該由FileInfo來管理,FileStream可以使用這個句柄,但不能結束其生命周期,FileStream::Close()方法僅僅使這個流處于關閉(不可讀寫)狀態,但并不實際關閉文件句柄。
            這種情況下,FileInfo所創建的FileStream::Close()的行為和前面File所創建的FileStream::Close()行為有差異。因為File并不持有句柄,所以它創建了FileStream對象后,句柄應該由FileStream來管理。但FileInfo所創建的FileStream是使用的FileInfo所創建好的句柄,所以它并不對此句柄負責。

            實現策略:
            1.使用基于繼承的多態或基于模板的靜多態。
            2.使用函數回調。把Close做成調用函數指針,通過不同的FileStream構造函數調用,來設置指針指向不同的Close函數實現。(關閉句柄或不關閉句柄)
            這兩種做法的優劣性正在考證中,請提出意見。


            補充:File和FileInfo的關系在dotnet中也有體現,不過他們主要是從錯誤檢測方面考慮。
            最終的目的是要為客戶提供一個統一的界面,所以不能用太復雜的模板。

            經過慎重考慮,我還是決定用虛函數,放棄了模板。

            posted on 2006-10-14 16:45 HuYi 閱讀(1133) 評論(0)  編輯 收藏 引用 所屬分類: 開發點滴

            導航

            統計

            常用鏈接

            留言簿(12)

            隨筆分類

            相冊

            收藏夾

            友情鏈接

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲国产精品成人久久蜜臀| 久久久久九国产精品| 久久天天躁狠狠躁夜夜网站| 久久精品一本到99热免费| 久久青青草原亚洲av无码app| 久久精品人人槡人妻人人玩AV| 久久伊人精品青青草原高清| 精品久久久久久久久久久久久久久| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 亚洲国产精品婷婷久久| 亚洲综合久久久| 久久国产精品-久久精品| 久久天天躁狠狠躁夜夜2020老熟妇| 亚洲精品乱码久久久久久按摩 | 精品蜜臀久久久久99网站| 久久免费国产精品| 国产日产久久高清欧美一区| 亚洲午夜精品久久久久久app| 精品久久久久久久无码| 久久人人爽人人人人片av| 伊人丁香狠狠色综合久久| 久久棈精品久久久久久噜噜| 久久久这里只有精品加勒比| 久久精品国产精品亜洲毛片| 久久99国产精一区二区三区| 亚洲中文字幕无码久久综合网| 久久国产综合精品五月天| 日韩精品国产自在久久现线拍| 中文字幕乱码人妻无码久久 | 无码任你躁久久久久久老妇App| 久久精品国产99国产精品澳门| 久久精品蜜芽亚洲国产AV| 99久久精品免费看国产一区二区三区 | 久久久噜噜噜久久中文福利| 欧美国产成人久久精品| 久久精品综合网| 精品国产乱码久久久久久呢 | 久久99精品国产麻豆不卡| 99久久综合狠狠综合久久| 国产高潮国产高潮久久久91| 欧美亚洲国产精品久久蜜芽|