锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日本成人一区二区三区,亚洲免费三区一区二区,99久久国产综合精品色伊http://www.aygfsteel.com/javapig/archive/2009/10/12/296704.html鐖搰鐚?/dc:creator>鐖搰鐚?/author>Mon, 12 Oct 2009 08:50:00 GMThttp://www.aygfsteel.com/javapig/archive/2009/10/12/296704.htmlhttp://www.aygfsteel.com/javapig/comments/296704.htmlhttp://www.aygfsteel.com/javapig/archive/2009/10/12/296704.html#Feedback0http://www.aygfsteel.com/javapig/comments/commentRss/296704.htmlhttp://www.aygfsteel.com/javapig/services/trackbacks/296704.html 璧峰垵鐨勯渶姹傛槸鎵撳嵃涓涓鍗曠エ鎹紝鐒跺悗鍙堣姹傜粰鍔犱笂涓涓姮澶村拰涓涓剼娉紝鍐嶇劧鍚庡張瑕佹眰鎶ご鍜岃剼娉ㄧ殑鏁伴噺涓嶆涓涓?br />
鍏跺疄璇翠竴涓嬭繖涓ā寮忓湪鎶鏈笂鐨勪竴浜涜鐐癸細
鍏堜笂涓孌?lt;<璁捐妯″紡綺捐В>>閲岀殑浠g爜錛?br /> abstract class Component {
    public abstract void prtTicket();
}

class SalesTicket extends Component {
    public void prtTicket() {
        System.out.println("Sales Ticket");
    }
}

class Decorator extends Component {
    private Component myComp;

    public Decorator(Component myC) {
        myComp = myC;
    }

    public void prtTicket() {
        if(myComp != null)
            myComp.prtTicket();
    }
}

class Header1 extends Decorator {

    public Header1(Component myC) {
        super(myC);
    }

    public void prtTicket() {
        System.out.println("Header 1");
        super.prtTicket();
    }
}

class Footer1 extends Decorator {

    public Footer1(Component myC) {
        super(myC);
    }

    public void prtTicket() {
        super.prtTicket();
        System.out.println("Footer 1");
    }
}

class Main {
    
    public static void main(String[] args) {
        new Header1(new Footer1(new SalesTicket())).prtTicket();
    }
}
鍏朵腑錛孲alesTicket鏄鍖呰鐨勫璞★紝涔熷氨鏄牳蹇冨姛鑳斤紝Decorator鏄洿緇曠潃榪欎釜鏍稿績鍔熻兘鎵瑕佹坊鍔犵殑闄勫姞鍔熻兘鐨勬娊璞$被銆傛瘡涓叿浣撶殑闄勫姞鍔熻兘綾婚兘緇ф壙Decorator榪欎釜綾匯傝繖鏍峰仛鏈変袱鐐規剰涔夛細
1.鍥犱負Decorator鏄戶鎵挎垨瀹炵幇浜嗘牳蹇冨姛鑳界被鎵緇ф壙鎴栧疄鐜扮殑鐖剁被錛岃繖鏍烽氳繃緇ф壙Decorator錛屼嬌闄勫姞鍔熻兘鍜屾牳蹇冨姛鑳界殑鎺ュ彛涓鑷淬?br /> 2.灝咲ecorator綾葷殑鏋勯犲嚱鏁板畾涔夋垚鍙帴鍙椾竴涓被鍨嬩負Component綾誨弬鏁扮殑鏂規硶錛岃繖鏍蜂嬌寰楅檮鍔犲姛鑳藉繀欏繪壘鍒頒竴涓牳蹇冨姛鑳藉皢鍏跺寘瑁咃紝涔熷氨鏄闄勫姞鍔熻兘綾繪槸涓嶈兘鍗曠嫭瀛樺湪鐨勶紝蹇呴』鍚湁涓涓牳蹇冨姛鑳界被銆?br />
鎵╁睍錛?br /> 涓篋ecorator綾誨強鍏舵墍鏈夊瓙綾繪坊鍔犳棤鍙傛瀯閫犲嚱鏁幫紝灝哅ain鏀瑰啓涓涓嬶細
class Main {
    
    public static void main(String[] args) {
        new Header1(new Footer1()).prtTicket();
    }
}
榪欐牱涓嶅寘瑁呮牳蹇冨姛鑳藉彲浠ョ洿鎺ヤ嬌鐢ㄩ檮鍔犲姛鑳斤紝鎹㈠彞璇濊錛屼笉瀛樺湪闄勫姞鍔熻兘鎴栨牳蹇冨姛鑳斤紝姣忎釜綾繪棦鍙互褰撻檮鍔犲姛鑳戒篃鍙互褰撴牳蹇冨姛鑳姐?br />
鏈鍚庤涓涓嬩釜浜哄榪欎釜妯″紡鐨勭悊瑙o細
Decorate錛岀炕璇戞垚涓枃鎰忔濇槸瑁呴グ錛屽姞浜嗕釜-or灝卞彉鎴愯楗拌呮垨鑰呭彨瑁呴グ鍣ㄣ傛棦鐒跺彨瑁呴グ鍣紝灝辨槸瑕佸闇瑕佽楗扮殑涓滆タ榪涜鍖呰錛屾敼榪涳紝浣垮叾鍔熻兘瑕佹瘮鍘熸潵鏇村鏇村ソ錛岃屼笖鏃㈢劧鏄楗幫紝閭e氨鑲畾涓嶆槸涓昏鐨勶紝鏍稿績鐨勫姛鑳斤紝鍙笉榪囨槸閿︿笂娣昏姳鑰屽凡錛屼笉鑳藉枾瀹懼ず涓匯傛瘮濡傝錛屽師鏈竴鍙板ソ濂界殑鎵撳嵃鏈猴紝緇忚繃瑁呴グ鍚庡彉鎴愪簡涓 鍙?#8220;鍙互鎵撳嵃鐨?#8221;媧楄。鏈猴紝榪欒姳娣葷殑灝卞ぇ浜嗙偣錛岃櫧璇村師鏉ョ殑鍔熻兘榪樹繚鐣欑潃錛屼絾鏄垜鎯寵繖搴旇涓嶆槸榪欎釜妯″紡鎻愬嚭鑰呯殑鍒濊》銆?br />


]]>
主站蜘蛛池模板: 天长市| 余干县| 仁化县| 蒲城县| 扬中市| 洮南市| 宿迁市| 长寿区| 奎屯市| 行唐县| 怀远县| 沅陵县| 潮州市| 东莞市| 婺源县| 汉寿县| 砀山县| 木兰县| 阿拉尔市| 兴化市| 临汾市| 广元市| 蕲春县| 肇州县| 尼木县| 桦甸市| 江永县| 长阳| 莒南县| 奇台县| 东宁县| 遂溪县| 土默特左旗| 太原市| 灌阳县| 贡嘎县| 哈巴河县| 东光县| 顺平县| 涟水县| 辽源市|