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

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

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

    That way I want to stay

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      55 Posts :: 1 Stories :: 41 Comments :: 0 Trackbacks
    ? http://m.tkk7.com/Files/Wingel/第3章%20除去代碼異味.rar
    ??????????????? 第3章 除去代碼異味 


    ??? 異味這個詞,可能有點抽象,我們先看一下下面的例子

    ??? 這是一個CAD系統(tǒng). 現(xiàn)在,它已經(jīng)可以畫三種形狀了:線條,長方形,跟圓.
    先認(rèn)真的看一下下面的代碼:

    ??? class Shape {??????????????????????????????????????????????????????????????????????????????????
    ?????? final static int TYPELINE = 0;??????????????????????????????????????????????????????????????
    ?????? final static int TYPERECTANGLE = 1;?????????????????????????????????????????????????????????
    ?????? final static int TYPECIRCLE = 2;????????????????????????????????????????????????????????????
    ?????? int shapeType;??????????????????????????????????????????????????????????????????????????????
    ?????? //線條的開始點
    ?????? //長方形左下角的點
    ?????? //圓心
    ?????? Point p1;???????????????????????????????????????????????????????????????????????????????????
    ?????? //線條的結(jié)束點
    ?????? //長方形的右上角的點
    ?????? //如果是圓的話,這個屬性不用
    ?????? Point p2;???????????????????????????????????????????????????????????????????????????????????
    ?????? int radius;?????????????????????????????????????????????????????????????????????????????????
    ??? }??????????????????????????????????????????????????????????????????????????????????????????????
    ??? class CADApp {?????????????????????????????????????????????????????????????????????????????????
    ?????? void drawShapes(Graphics graphics, Shape shapes[]) {????????????????????????????????????????
    ?????????? for (int i = 0; i < shapes.length; i++) {???????????????????????????????????????????????
    ?????????????? switch (shapes[i].getType()) {??????????????????????????????????????????????????????
    ????????????????? case Shape.TYPELINE:?????????????????????????????????????????????????????????????
    ????????????????????? graphics.drawLine(shapes[i].getP1(), shapes[i].getP2());?????????????????????
    ????????????????????? break;???????????????????????????????????????????????????????????????????????
    ????????????????? case Shape.TYPERECTANGLE:????????????????????????????????????????????????????????
    ????????????????????? //畫四條邊
    ????????????????????? graphics.drawLine(...);??????????????????????????????????????????????????????
    ????????????????????? graphics.drawLine(...);??????????????????????????????????????????????????????
    ????????????????????? graphics.drawLine(...);??????????????????????????????????????????????????????
    ????????????????????? graphics.drawLine(...);??????????????????????????????????????????????????????
    ????????????????????? break;???????????????????????????????????????????????????????????????????????
    ????????????????? case Shape.TYPECIRCLE:???????????????????????????????????????????????????????????
    ????????????????????? graphics.drawCircle(shapes[i].getP1(), shapes[i].getRadius());???????????????
    ????????????????????? break;???????????????????????????????????????????????????????????????????????
    ?????????????? }???????????????????????????????????????????????????????????????????????????????????
    ?????????? }???????????????????????????????????????????????????????????????????????????????????????
    ?????? }???????????????????????????????????????????????????????????????????????????????????????????
    ??? }??????????????????????????????????????????????????????????????????????????????????????????????


    ??? 代碼都是一直在改變的,而這也是上面的代碼會碰到的一個問題.

    ??? 現(xiàn)在我們有一個問題: 如果我們需要支持更多的形狀(比如三角形), 那么肯定要改動Shape這個類, CADApp里面的drawShapes這個方法也要改.
    好,改為如下的樣子:
    ??
    ......


    ??? 如果我們想要支持更多的圖形(比如:三角形),上面沒有一個類需要修改。我們只需要創(chuàng)建一個新的類Triangle就行了。

    具體的內(nèi)容在上面的下載鏈接里面的pdf文件里,看pdf比較舒服。

    http://m.tkk7.com/Files/Wingel/第3章%20除去代碼異味.rar
    posted on 2006-11-27 21:23 Wingel 閱讀(1998) 評論(3)  編輯  收藏 所屬分類: 敏捷開發(fā)

    Feedback

    # re: 敏捷開發(fā)的必要技巧----消除代碼異味 2006-11-28 10:36 Slash
    好文啊  回復(fù)  更多評論
      

    # re: 敏捷開發(fā)的必要技巧----消除代碼異味 2006-11-28 15:02 peace
    你發(fā)的是什么內(nèi)容啊?  回復(fù)  更多評論
      

    # re: 敏捷開發(fā)的必要技巧----消除代碼異味 2006-11-28 15:04 Slash
    rar里面是個pdf啊。
    我發(fā)的是一本書  回復(fù)  更多評論
      

    主站蜘蛛池模板: a级片免费观看视频| 最近免费中文字幕MV在线视频3| 1000部免费啪啪十八未年禁止观看| 免费成人黄色大片| 亚洲另类激情综合偷自拍图| 人妻仑刮八A级毛片免费看| 久久久久国产精品免费免费不卡| 国产aⅴ无码专区亚洲av麻豆| 亚洲男人电影天堂| 日韩精品无码免费视频| 啊灬啊灬别停啊灬用力啊免费看| 亚洲av无码一区二区三区人妖 | 久久乐国产精品亚洲综合| 亚洲午夜视频在线观看| 亚洲久悠悠色悠在线播放| 在线视频网址免费播放| 国产情侣激情在线视频免费看| 亚洲中文无码a∨在线观看| 色窝窝免费一区二区三区 | 亚洲电影一区二区三区| 立即播放免费毛片一级| 亚洲高清视频一视频二视频三| aa级女人大片喷水视频免费| 亚洲国产精品VA在线观看麻豆| 朝桐光亚洲专区在线中文字幕| 亚欧在线精品免费观看一区| 亚洲综合丁香婷婷六月香| 无码人妻丰满熟妇区免费| 亚洲国产电影在线观看| 免费的一级片网站| rh男男车车的车车免费网站| 国产一区二区免费在线| fc2成年免费共享视频网站| 亚洲ⅴ国产v天堂a无码二区| 岛国av无码免费无禁网站| 亚洲精品成人av在线| 好男人www免费高清视频在线| 免费的黄网站男人的天堂| 久久国产亚洲观看| 午夜毛片不卡高清免费| 亚洲看片无码在线视频|