• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘

    字號: | 推薦給好友 上一篇 | 下一篇

    為什么在Java編程中的繼承多數是有害的 (2)

    發布: 2008-5-06 11:21 | 作者: 不詳 | 來源: 賽迪網技術社區 | 查看: 9次 | 進入軟件測試論壇討論

    領測軟件測試網

    a0YQ Pg^脆弱的基類問題  軟件測試技術門戶X.X z%S qq
    軟件測試技術門戶6}\kN)^`b }
    現在,讓我們應用耦合的概念到繼承。在一個用extends的繼承實現系統中,派生類是非常緊密的和基類耦合,當且這種緊密的連接是不期望的。設計者已經應用了綽號“脆弱的基類問題”去描述這個行為;A類被認為是脆弱的是,因為你在看起來安全的情況下修改基類,但是當從派生類繼承時,新的行為也許引起派生類出現功能紊亂。你不能通過簡單的在隔離下檢查基類的方法來分辨基類的變化是安全的;而是你也必須看(和測試)所有派生類。而且,你必須檢查所有的代碼,它們也用在基類和派生類對象中,因為這個代碼也許被新的行為所打破。一個對于基礎類的簡單變化可能導致整個程序不可操作。 
    ] uI@'~g(i軟件測試技術門戶 k8X+yb4L"c
    讓我們一起檢查脆弱的基類和基類耦合的問題。下面的類extends了Java的ArrayList類去使它像一個stack來運轉:  軟件測試技術門戶 { }@aGX"YV
    軟件測試技術門戶q&HL UC9G6cX
    軟件測試技術門戶!h$dm ZTwx Nzc
     class Stack extends ArrayList  軟件測試技術門戶bq4W+RR+D uI3bI
      { 
    WE#x8V c q5g3j4o\]  private int stack_pointer = 0; 
    +Nop9Q!F)CU軟件測試技術門戶U;uIg[3G l f I
      public void push( Object article )  軟件測試技術門戶)m%`xl'X]7C
      { 
    jrF ?yad xb5X'|l6^  add( stack_pointer++, article );  軟件測試技術門戶vPp3fTt X:K{ |3J
      }  軟件測試技術門戶7wPB$oiP;pk:gO

    z@/@EH  public Object pop() 
    8~]x4e7k8o_q  {  軟件測試技術門戶 Wf WnM w,c A)c
      return remove( --stack_pointer );  軟件測試技術門戶@XDt r @-u$f
      }  軟件測試技術門戶!q0kV$e5b'JM$V

    8w!{@!M 老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>