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

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

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

    www.alphatom.com

    統計

    留言簿(1)

    閱讀排行榜

    評論排行榜

    2005年4月9日 #

    重構---Who are you?!

    不要當你需要新的功能的時候,或者原來的程序出了Bug,你才想起重構。

    《重構》那本書你看過了嗎?它寫的是什么?那本書的價值何在?介紹重構這門技術?告訴你為什么重構?錯!那本書的價值就在于它把應該引起重構的Bad Smell一一列了出來,并給出了該如何重構解決這些Bad Smell的意見,不然那本書看一遍就可以扔了!

    你知道什么是面向對象嗎?接口! 你知道什么是TDD嗎?重構!

    詳細內容

    posted @ 2006-02-06 12:31 idior 閱讀(635) | 評論 (1)編輯 收藏

    Enterprise Test Driven Develop

           TDD這個概念出現至少也有兩年多了, 在大家剛接觸它時候, 幾乎沒人不拍手鼓掌, 測試驅動的概念確實可以為我們帶來很多的好處. 泡泡在前不久寫了一篇很不錯的TDD的文章, 可是我還是忍不住在他的評論中說到這篇文章有點”. 確實,同樣的概念在書中, 在大家的口中已經被說爛了. 但是TDD真正給我們帶來什么呢? 有多少人在用TDD? 為什么這么好的技術到了應用中就被人們拋棄了呢?

    (: Design Pattern面世都十幾年了, 現在還是有不少好書在介紹它,所以不代表不好,泡泡的總結在園子里還是最好的一篇TDD文章, 特別建議剛接觸TDD的參考之.)  

            TDD的應用是阻撓TDD發展的重要原因, 回想一下有關TDD書中舉的那些例子. 再想想你學習了解TDD自己又做了哪些應用? --- 類庫, 最基本的幾個類之間協作, 不涉及數據庫,不涉及UI,不涉及企業服務. 這樣看來TDD最適用的場合就是不涉及復雜應用的類庫. 比如一個保齡球游戲, 一個Money兌換系統. 如果是這樣那TDD自然沒有人用了, 真正的項目有幾個不涉及負責應用呢, 有幾個不和數據庫,界面打交道? 可是一旦你想將TDD應用于此時, 你就會發現煩不勝煩, 無從下手.

           難道TDD真得這么不堪一擊?...  詳細內容

                    
    Something you should know

    不要去測試類中的每個方法. 要測試這個類對外所能提供的功能, 這些功能可能是其中的幾個重要方法,可能需要類中的幾個方法協作. 記住一點, TDD中測試代碼也是文檔的一部分, 你應該通過你的測試代碼告訴別人如何使用這個類.

    posted @ 2005-08-09 14:00 idior 閱讀(464) | 評論 (0)編輯 收藏

    Generics to Eliminate Casting ?

    詳細內容

    posted @ 2005-08-01 18:05 idior 閱讀(426) | 評論 (0)編輯 收藏

    Enterprise Persistence Design

    在前不久發布的質疑國內.Net社區的隨筆中, 我個人算是對社區的力量抱怨了一把. 下面該有些實際行動來推動社區的發展, 其實在寫那篇隨筆的時候正在總結一些心得, 現在我把它發表出來供大家討論,也算是帶個好頭,希望能起到拋磚引玉的作用.

        在閱讀此文之前推薦閱讀O/R Mapping 基本概念,在基本概念上達成共識.

        Enterprise Persistence Design

     

    posted @ 2005-07-18 16:46 idior 閱讀(613) | 評論 (0)編輯 收藏

    多態? 你的理解是什么?

    在博客園我曾經發過這么一個隨筆,得到不少的相應,同樣希望能聽到java朋友們的高見

    wayfarer
    他的隨筆中談到了面試別人時的一個問題. 你是如何理解多態的.

    我想每個人的理解都不同,那么我們就來集思廣義吧.
    你可以從概念層 實現層,各個層面談談你對它的理解.角度越多,越能加深我們對它的理解.

    不過有個小要求,就是用一兩句話把你的意思表達出來.越是精練的語言,越能反應問題的實質.
    我們不要求全面但是要有內容.比如sumtec的面向對象就是面向接口.

    不過這里不要求一定是自己的見解,也可以是別的大家的看法.
    畢竟我們的目的是理解多態!

    我先拋磚引玉:
    多態就是實現將接口(不特指關鍵字interface)與實現分離的技術.


    評論:

    # re: 多態? 你的理解是什么? 2005-03-06 23:38 | alittlefish

    在實際操作中,多態可以讓我不用關心某個對象到底是什么具體類型,就可以使用該對象的某些方法,而這些方法通過一個抽象類或者接口來實現。
    從下往上看的話,多態實際上是多個對象的抽象,對它們進行通用編碼。
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 08:41 | 一切從.NET開始

    沒有多態,工廠方法模式的效果就大打折扣,或者可以說不可能實現 :)
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 08:47 | 小詐

    對于相同的事件(不指一般我們說的那些事件),不同的對象表現出不同的行為(特征)。

    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 09:22 | KingofSC

    多態給我的感覺就是提供父類調用子類代碼的一個手段而已
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 09:29 | idior

    很好,繼續,希望看到更多更新的觀點。
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 10:08 | age0

    繼承的目的是復用,繼承復用包括兩方面的復用:抽象(接口)復用,實現(過程)復用。

    多態的目的就是要將抽象復用及實現復用剝離開來,子類雖然擁有和父類一樣的抽象接口,但實現過程卻未必一樣,多態的引入就是要在繼承的基礎上實現變異的可能性。當然子類繼承也不一定會產生實現差異,所以多態允許在產生差異的時候override父類接口,沒有產生差異的時候直接繼承。

    interface
    則是另一種復用方式,interface只允許抽象復用,而禁止實現復用,所以interface比繼承顯得更輕量,但實際上系統中的實現復用必須由其他機制來保證。
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 10:15 | age0

    To idior,想用一兩句話來解釋清楚一個深奧的概念是不是有點不切實際。
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 10:53 | rIPPER

    一時 找不到sun oo-226課程了,里面應該有比較簡單明確的定義
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 10:59 | sysword

    我的理解,一個問題一般會表現在多個層面上,各個層面上抽象程度不同,多態正是思考問題過程中跨越各層的橋梁。
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 11:09 | dudu

    我覺得多態是在對象的基礎上更高級的抽象, 它描述了一組具有共性的對象。
    Allen Lee
    的《今天你多態了嗎?》值得一讀: http://www.cnblogs.com/allenlooplee/archive/2004/11/02/59519.html
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 12:38 | 生活、工作

    運行時,才明確具體是指那個對象,這給client代碼,帶來了很大的靈活性。使依賴注入、針對抽象與接口編程、同一行代碼操作不同類的對象(用接口)等等成為可能。
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 12:50 | idior

    我比較喜歡生活、工作的描述
    ◎age0
    如果概念解釋是很難用一兩句話說清。
    但是就像生活、工作這樣的描述就能有意義。


    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 17:43 | 班門弄斧

    多態是多個對象UpCast的過程
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 19:56 | 丁丁

    用人來表示基對象,多態就是對于不同種類的人(情圣或者情盲),拍MM馬屁雖然目的相同,但是效果很不相同,情圣說你好漂亮就抱得MM歸,而情盲拍得話,可能就被鋸
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-07 22:57 | Neter

    我比較同意小詐的觀點,多態就是具有相似功能的對象,有著不同的表現方法和行為。
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-08 01:32 | NickLedson

    我的觀點是大大增強代碼的復用性,使得項目架構更加清晰,松耦合.
    比如在實際應用中我可以輕松繼承一個System.Window.Forms.Control命名空間下的類比如Button打造屬于自己的NixButton類而當一些原有系統的方法參數要求的傳入的參數類型是Button,我不必修改原有代碼而直接把NixButton的實例對象傳進去依然可用.

    從而達到代碼復用和架構松耦合的效果

    子類繼承了父類的所有接口,包括invoke handler/object對應表然后按繼承關系和invoke handler不同而調用不同的實現代碼!

    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-08 09:44 | idior

    小詐的觀點確實比較簡明的說出了多態的表現.
    希望看到更加深刻透徹的觀點.
    刪除評論  修改評論

    # re: 多態? 你的理解是什么? 2005-03-11 16:15 | myx

    一位司機在公共汽車上,有可能是乘客,有可能是司機,就就是多態吧^_^
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-13 06:21 | MindScape

    和小作的差不多,多態的本質根本是語義相同。

    多態是指,不同對象對應于同一動作語義具有不同的實際行為。


    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-13 18:10 | 龍蟄(NeoLee)

    呵,我也常在面試中提到對多態的理解,我的理解是:

    接口是面象對象的實現,多態是面象接口的應用!

    BTW:
    不太認同sumtec的面向對象就是面向接口. 面象對象更多的是一種開發思想,接口更多的是實現技術,用就是來表達不確切,但這么形容也道出接口是面象對象開發中實現抽象最主要的手段!
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-13 21:56 | idior

    sumtec的那句話當然不對,關鍵是道出很本質的東西。

    我覺得多態是面向接口的保證,支持。 而不是應用,關系反了吧。
    由于多態的支持才能面向接口。
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-14 00:32 | 龍蟄(NeoLee)

    句中的應用有兩重含義:
    其一,多態是接口的特性。其二,就是對接口的應用,如在子類中override父類接口。
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-26 23:09 | jsports

    我認為多態,首先蘊含有decorator 的味道---------->一樣的接口,但是功能上增強了。

    另外一方面,多太表明實現多態的class是一族的,
    對外部(外人)來講,只要知道有這個方法(標簽),
    具體運行時你是這個系列(族)的誰,我不關心,我只關心你能給我進行這個服務就行。
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-27 08:30 | 生活、工作

    通俗的說,先說明一項功能或動作,風馬牛不相及的東西去實現它。

    對服務器段代碼而言:
    訂下這個功能的設計時間較長,但寫時一下了就完成了,用1%的時間,但風馬牛不相及的東西去實現它時,耗時就多了,用99%的時間。

    對客戶端代碼而言:
    從使用的角度說:好處還是我上面所說的。
    從學院派的角度說:就是小詐的說法對于相同的事件(不指一般我們說的那些事件),不同的對象表現出不同的行為。
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-03-27 11:41 | idior

    jsports和生活、工作的觀點都不錯 :)
    刪除評論  修改評論

    # re: 多態? 你的理解是什么? 2005-04-01 13:54 | ttyp

    多態是和繼承相反的概念
    多態是父類調子類的實現,繼承是子類調父類的實現,由于多態時不知道會被哪個子類繼承,所以定義的東西都是虛函數,當你執行這個虛函數時,首先找到該虛函數代表的實體子類,并執行子類中的相關代碼
    刪除評論  

    # re: 多態? 你的理解是什么? 2005-04-01 14:08 | idior

    @ttyp
    多態是和繼承相反的概念 interesting idea!
    刪除評論  修改評論

    # re: 多態? 你的理解是什么? 2005-04-09 13:24 | huangyi

    我從客戶和服務的角度來理解 就是

    服務可以由許多人來提供。
    而客戶只管使用服務,不需要知道服務的來源更不需要知道服務是如何實現的。另外,客戶也許還會有小秘,專門幫客戶選擇服務的。

    哎 多態讓客戶太舒服了啊 呵呵

     

    posted @ 2005-04-09 16:13 idior 閱讀(1262) | 評論 (6)編輯 收藏

    測試驅動開發 --- Rss Reader Item Marker

    1.         Refactory away External Loops        盡量將集合遍歷的操作放在集合內

    2.      Reduce Private Method                    盡量減少私有方法

    3.     Open-Close Principle                        封閉開放原則

    4.      Specification Pattern                        如何從一組對象中選出滿足特定條件的對象

    本文將圍繞以上主題就最近很流行的RSS閱讀器的一個功能(Mark)以測試驅動開發的方式展開. 最后給出一個通用的處理集合的框架.

    詳見文章
    blogJava首貼

    posted @ 2005-04-09 16:12 idior 閱讀(389) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 人妻巨大乳hd免费看| 精品亚洲永久免费精品| 久久青草亚洲AV无码麻豆| 特级毛片全部免费播放| 日韩精品无码人妻免费视频| 亚洲av无码片在线观看| 男女免费观看在线爽爽爽视频| 亚洲国产精品日韩av不卡在线| 亚洲一区二区三区四区视频| 国产成人精品免费视频大全五级 | 亚洲爆乳无码一区二区三区| 日韩毛片免费无码无毒视频观看| 免费看国产一级片| 亚洲AV色无码乱码在线观看| 女人张开腿等男人桶免费视频 | 亚洲短视频男人的影院| 国产精成人品日日拍夜夜免费| av无码免费一区二区三区| 亚洲人成片在线观看| 丁香花免费高清视频完整版 | 亚洲国产精品嫩草影院| 久久久亚洲精品视频| 免费一看一级毛片全播放| 五月天婷婷精品免费视频| 亚洲三级在线播放| 国产亚洲大尺度无码无码专线| jiz zz在亚洲| 大胆亚洲人体视频| 色www永久免费网站| 久久久久亚洲精品成人网小说 | 亚洲色精品aⅴ一区区三区| 大地资源中文在线观看免费版| 日本19禁啪啪无遮挡免费动图| 日韩亚洲国产高清免费视频| 亚洲日韩一页精品发布| 超pen个人视频国产免费观看 | 国产va免费精品| 日韩亚洲Av人人夜夜澡人人爽| 阿v免费在线观看| 亚洲毛片在线免费观看| 国产极品粉嫩泬免费观看 |