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

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

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

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
    范例(Examples)
    class IntRange {
        private int _low, _high;
       
        boolean includes(int arg) {
           return arg >= _low && arg <= _high;
        }

        void grow(int factor) {
           _high = _high * factor;
        }

        IntRange(int low, int high) {
           _low = low;
           _high = high;
        }
    為了封裝_low和_high這兩個值域,我先定義[取值/設值函數](如果此前沒有定義的話),并使用它們:
    class IntRange {
        private int _low, _high;
       
        boolean includes(int arg) {
           return arg >= _low && arg <= _high;
        }

        void grow(int factor) {
           _high = _high * factor;
        }

        int getLow() {
           return _low;
        }

        int getHigh() {
           return _high;
        }

        void setLow(int arg) {
           _low = arg;
        }

        void setHigh(int arg) {
           _high = arg;
        }
    使用本項重構時,一般說來,設值函數被認為應該在[對象創建后]才使用,所以初始化過程中的行為有可能與設值函數的行為不同。這種情況下,我也許在構造函數中直接訪問值域,要不就是建立另一個獨立的初始化函數:
    IntRange(int low, int high) {
        initialize(low, high);
    }
    private void initialize(int low, int high) {
        _low = low;
        _high = high;
    }
    一旦你擁有一個subclass,上述所有動作的價值就體現出來了。如下所示:
    class CappedRange extends IntRange {
        CappedRange(int low, int high, int cap) {
           super(low, high);
           _cap = cap;
        }

        private int _cap;

        int getCap() {
           return _cap;
        }
        
        int getHigh() {
           return Math.min(super.getHigh(), getCap());
        }
    }
    現在,我可以CappedRange class中覆寫getHigh(),從而加入對cap的考慮,而不必修改IntRange class的任何行為。
    posted on 2005-08-31 15:57 ivaneeo 閱讀(218) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 国产精品免费_区二区三区观看| 久久99国产综合精品免费| 中文字幕av无码无卡免费| 亚洲国产精品国自产拍电影| 日韩精品无码免费专区午夜不卡 | 黄色片在线免费观看| 日木av无码专区亚洲av毛片| 国产精品白浆在线观看免费| 亚洲妇熟XXXX妇色黄| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 婷婷久久久亚洲欧洲日产国码AV| 999zyz**站免费毛片| 亚洲乱色熟女一区二区三区丝袜| 成人网站免费大全日韩国产| 国产精品亚洲A∨天堂不卡| a视频在线免费观看| 亚洲国产精品人久久| 国产91色综合久久免费分享| 亚洲人成黄网在线观看| 成人毛片18女人毛片免费| 亚洲国产精品无码久久98| 国产人妖ts在线观看免费视频| 青青草97国产精品免费观看| 国产精品亚洲w码日韩中文| 热99RE久久精品这里都是精品免费| 亚洲AV无码1区2区久久| 91香蕉成人免费网站| 亚洲国产精品18久久久久久| 免费jjzz在线播放国产| 免费久久人人爽人人爽av| 亚洲永久中文字幕在线| 日本不卡视频免费| 中文字幕在线免费观看视频| 亚洲韩国在线一卡二卡| 国产午夜鲁丝片AV无码免费| 国产免费人成视频尤勿视频| 亚洲黄色在线观看视频| 免费看国产精品麻豆| 无码AV片在线观看免费| 亚洲国产精品网站在线播放 | 久久亚洲国产成人影院网站|