亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? o_mediator.java

?? 超好的設計模式Java事例程序
?? JAVA
字號:
/*
	MEDIATOR—四個MM打麻將,相互之間誰應該給誰多少錢算不清楚了,幸虧當時我在旁邊,按照各自的籌碼數算錢,賺了錢的從我這里拿,賠了錢的也付給我,一切就OK啦,俺得到了四個MM的電話。 

  調停者模式:調停者模式包裝了一系列對象相互作用的方式,使得這些對象不必相互明顯作用。從而使他們可以松散偶合。當某些對象之間的作用發生改變時,不會立即影響其他的一些對象之間的作用。保證這些作用可以彼此獨立的變化。調停者模式將多對多的相互作用轉化為一對多的相互作用。調停者模式將對象的行為和協作抽象化,把對象在小尺度的行為上與其他對象的相互作用分開處理。
 */
import java.awt.*;
import java.awt.event.*;


public class O_Mediator{
	public static void main(String args[]){
		new LoginFrame("Mediator Sample");
	}
}

interface Mediator {
    public abstract void createColleagues();
    public abstract void colleagueChanged(Colleague colleague);
}

class LoginFrame extends Frame implements ActionListener, Mediator {
    private ColleagueCheckbox checkGuest;
    private ColleagueCheckbox checkLogin;
    private ColleagueTextField textUser;
    private ColleagueTextField textPass;
    private ColleagueButton buttonOk;
    private ColleagueButton buttonCancel;

    // 構造子
    // 產生並配置好Colleague之后再輸出到畫面上
    public LoginFrame(String title) {
        super(title);
        setBackground(Color.lightGray);
        // 使用頁面編排,產生4×2的畫面
        setLayout(new GridLayout(4, 2));
        // 產生Colleague
        createColleagues();
        // 配置
        add(checkGuest);
        add(checkLogin);
        add(new Label("Username:"));
        add(textUser);
        add(new Label("Password:"));
        add(textPass);
        add(buttonOk);
        add(buttonCancel);
        // 有效/無效的初始設定
        colleagueChanged(checkGuest);
        // 輸出到畫面上
        pack();
        show();
    }

    // 產生Colleague
    public void createColleagues() {
        // 產生
        CheckboxGroup g = new CheckboxGroup();
        checkGuest = new ColleagueCheckbox("Guest", g, true);
        checkLogin = new ColleagueCheckbox("Login", g, false);
        textUser = new ColleagueTextField("", 10);
        textPass = new ColleagueTextField("", 10);
        textPass.setEchoChar('*');
        buttonOk = new ColleagueButton("OK");
        buttonCancel = new ColleagueButton("Cancel");
        // Mediator的部分
        checkGuest.setMediator(this);
        checkLogin.setMediator(this);
        textUser.setMediator(this);
        textPass.setMediator(this);
        buttonOk.setMediator(this);
        buttonCancel.setMediator(this);
        // Listener的部分
        checkGuest.addItemListener(checkGuest);
        checkLogin.addItemListener(checkLogin);
        textUser.addTextListener(textUser);
        textPass.addTextListener(textPass);
        buttonOk.addActionListener(this);
        buttonCancel.addActionListener(this);
    }

    // 根據Colleague的通知,判斷各Colleague的有效/無效
    public void colleagueChanged(Colleague c) {
        if (c == checkGuest || c == checkLogin) {
            if (checkGuest.getState()) {             // Guest模式
                textUser.setColleagueEnabled(false);
                textPass.setColleagueEnabled(false);
                buttonOk.setColleagueEnabled(true);
            } else {                                 // Login模式
                textUser.setColleagueEnabled(true);
                userpassChanged();
            }
        } else if (c == textUser || c == textPass) {
            userpassChanged();
        } else {
            System.out.println("colleagueChanged:unknown colleague = " + c);
        }
    }

    // textUser或textPass有變動
    // 判斷各Colleague的有效/無效
    private void userpassChanged() {
        if (textUser.getText().length() > 0) {
            textPass.setColleagueEnabled(true);
            if (textPass.getText().length() > 0) {
                buttonOk.setColleagueEnabled(true);
            } else {
                buttonOk.setColleagueEnabled(false);
            }
        } else {
            textPass.setColleagueEnabled(false);
            buttonOk.setColleagueEnabled(false);
        }
    }
    public void actionPerformed(ActionEvent e) {
        System.out.println("" + e);
        System.exit(0);
    }
}

class ColleagueTextField extends TextField implements TextListener, Colleague {
    private Mediator mediator;
    public ColleagueTextField(String text, int columns) {   // 構造子
        super(text, columns);
    }
    public void setMediator(Mediator mediator) {            // 保留Mediator
        this.mediator = mediator;
    }
    public void setColleagueEnabled(boolean enabled) {      // Mediator指示有效/無效
        setEnabled(enabled);
        setBackground(enabled ? Color.white : Color.lightGray);
    }
    public void textValueChanged(TextEvent e) {             // 若字串有變化,則通知Mediator
        mediator.colleagueChanged(this);
    }
}
class ColleagueCheckbox extends Checkbox implements ItemListener, Colleague {
    private Mediator mediator;
    public ColleagueCheckbox(String caption, CheckboxGroup group, boolean state) {  // 構造子
        super(caption, group, state);
    }
    public void setMediator(Mediator mediator) {            // 保留Mediator
        this.mediator = mediator;
    }
    public void setColleagueEnabled(boolean enabled) {      // Mediator指示有效/無效
        setEnabled(enabled);
    }
    public void itemStateChanged(ItemEvent e) {             // 若狀態有變
        mediator.colleagueChanged(this);
    }
}


class ColleagueButton extends Button implements Colleague {
    private Mediator mediator;
    public ColleagueButton(String caption) {
        super(caption);
    }
    public void setMediator(Mediator mediator) {            // 保留Mediator
        this.mediator = mediator;
    }
    public void setColleagueEnabled(boolean enabled) {      // Mediator指示有效/無效
        setEnabled(enabled);
    }
}

interface Colleague {
    public abstract void setMediator(Mediator mediator);
    public abstract void setColleagueEnabled(boolean enabled);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲不卡一区二区三区| 7777精品伊人久久久大香线蕉完整版 | 精品处破学生在线二十三| 欧美午夜一区二区三区免费大片| 91在线免费看| av在线免费不卡| 91视视频在线观看入口直接观看www | 人人超碰91尤物精品国产| 日韩福利电影在线| 蜜乳av一区二区| 激情综合亚洲精品| 国产毛片精品一区| 成人的网站免费观看| 色偷偷一区二区三区| 欧美视频中文字幕| 欧美一级理论片| 26uuu另类欧美| 国产欧美日韩综合精品一区二区| 国产精品美女久久久久久久网站| 亚洲欧美自拍偷拍| 亚洲一区二区三区三| 日韩—二三区免费观看av| 九九九久久久精品| 成人av综合一区| 欧美中文字幕一区二区三区| 91精品麻豆日日躁夜夜躁| 欧美大片日本大片免费观看| 中文字幕va一区二区三区| 亚洲人快播电影网| 日日摸夜夜添夜夜添精品视频| 久久国内精品视频| 波多野洁衣一区| 欧美网站一区二区| 久久久久久久综合日本| 亚洲日本在线看| 日韩黄色免费网站| 国产福利精品导航| 欧美性欧美巨大黑白大战| 91精品国产aⅴ一区二区| 国产日韩高清在线| 一区二区日韩av| 久久99国产精品麻豆| av在线播放不卡| 欧美丰满少妇xxxxx高潮对白| 久久久亚洲高清| 一级女性全黄久久生活片免费| 蜜桃av一区二区在线观看| 成人精品视频网站| 欧美一区二区三区不卡| 国产精品久久久久一区| 日韩av中文字幕一区二区| 成人精品视频一区| 日韩午夜电影在线观看| 国产精品久久久久久久久免费樱桃| 亚洲成人在线免费| 成人免费黄色在线| 日韩午夜三级在线| 亚洲综合色婷婷| 成人蜜臀av电影| 日韩欧美国产一区在线观看| 亚洲精品欧美激情| 国产美女av一区二区三区| 欧美日韩高清一区二区不卡| 欧美国产日韩一二三区| 美女在线观看视频一区二区| 色美美综合视频| 国产日韩亚洲欧美综合| 日本va欧美va瓶| 在线免费观看日本欧美| 国产精品乱码一区二三区小蝌蚪| 日产国产欧美视频一区精品| 色吧成人激情小说| 国产精品情趣视频| 极品少妇一区二区| 在线综合视频播放| 亚洲激情第一区| 成人av网站大全| 国产亚洲综合性久久久影院| 日本中文字幕一区| 欧美性受极品xxxx喷水| 亚洲色图欧洲色图婷婷| 成人在线视频一区| www国产成人免费观看视频 深夜成人网| 亚洲高清视频在线| 在线看不卡av| 亚洲视频在线一区| 波多野结衣视频一区| 国产欧美一区二区精品性| 国产在线麻豆精品观看| 欧美大片日本大片免费观看| 无吗不卡中文字幕| 欧美亚洲动漫精品| 亚洲一区自拍偷拍| 欧美综合亚洲图片综合区| 怡红院av一区二区三区| 91免费国产视频网站| 中文字幕一区av| 91丨九色丨尤物| 亚洲啪啪综合av一区二区三区| 99视频超级精品| 亚洲欧洲一区二区三区| 91视频免费看| 亚洲黄色av一区| 在线观看日韩毛片| 亚洲一二三四区| 91国模大尺度私拍在线视频| 亚洲乱码日产精品bd| 色久综合一二码| 亚洲午夜激情网页| 91精品国产91综合久久蜜臀| 美女网站色91| 国产午夜亚洲精品午夜鲁丝片 | 国产精品996| 奇米色一区二区三区四区| 制服丝袜亚洲网站| 久久99热国产| 国产视频在线观看一区二区三区 | av不卡在线播放| 亚洲免费在线观看视频| 91福利国产成人精品照片| 五月综合激情婷婷六月色窝| 69堂成人精品免费视频| 国产真实乱对白精彩久久| 国产精品天天摸av网| youjizz国产精品| 亚洲宅男天堂在线观看无病毒| 欧美日韩精品一区二区天天拍小说| 日产国产欧美视频一区精品| 久久综合九色欧美综合狠狠| 成人免费视频视频| 亚洲综合成人在线视频| 日韩一区二区三区视频在线 | 国内精品视频666| 国产精品嫩草99a| 欧美日韩一区视频| 精品一二三四区| 1区2区3区国产精品| 欧美日韩综合不卡| 久久99精品视频| 亚洲人成伊人成综合网小说| 欧美剧在线免费观看网站| 国产美女精品在线| 亚洲激情图片qvod| 亚洲精品一区二区三区99| av一二三不卡影片| 免播放器亚洲一区| 综合色天天鬼久久鬼色| 日韩欧美一二三| 色综合天天在线| 久久精品国产成人一区二区三区| 国产精品不卡一区二区三区| 3d成人动漫网站| 99精品视频中文字幕| 麻豆精品在线视频| 玉足女爽爽91| 久久精品夜夜夜夜久久| 欧美三级中文字幕在线观看| 国产美女主播视频一区| 香蕉加勒比综合久久| 国产精品欧美综合在线| 欧美一级午夜免费电影| 91麻豆国产香蕉久久精品| 韩国成人精品a∨在线观看| 亚洲成人av中文| 国产精品家庭影院| 欧美精品一区二区三区蜜桃 | 911国产精品| 91在线观看视频| 国产一区二区免费在线| 午夜精品aaa| 亚洲色图欧美在线| 久久精品视频在线看| 3751色影院一区二区三区| 色屁屁一区二区| 国产不卡视频一区二区三区| 久久精品久久久精品美女| 亚洲美女免费视频| 国产精品无人区| 久久日韩粉嫩一区二区三区 | 亚洲精品国产高清久久伦理二区| 久久久精品2019中文字幕之3| 制服丝袜国产精品| 欧美羞羞免费网站| 日本乱人伦aⅴ精品| 99久久综合狠狠综合久久| 国产不卡视频一区| 国产在线看一区| 激情综合五月婷婷| 久久精品国产亚洲高清剧情介绍| 天天综合色天天综合色h| 一区二区免费视频| 亚洲欧美另类久久久精品2019| 日本一区二区三区四区在线视频 | 中文字幕精品三区| 国产视频视频一区| 国产欧美一区二区三区在线看蜜臀 | 午夜久久电影网| 亚洲国产精品久久人人爱| 亚洲美女少妇撒尿| 亚洲综合色丁香婷婷六月图片|