javaでデザインモード-delegate(代理)
1569 ワード
http://yangguangfu.iteye.com/blog/815787---これはとても良い参考です.
代理の一例について:会議--社長--秘書の小明/会議--CEO--秘書の小明さん、明さんは社長とCEOの代わりに会議をします.明さんはその代理です.
1.会議の機能インターフェース(クラス名に問題がある):
とCEOのイメージ:
代理の一例について:会議--社長--秘書の小明/会議--CEO--秘書の小明さん、明さんは社長とCEOの代わりに会議をします.明さんはその代理です.
1.会議の機能インターフェース(クラス名に問題がある):
/*
* --
*
*/
public interface MiShu {
public void kaiHui();//
}
2.ボスとCEOのイメージ:
/*
*
*
*/
public class TheBoos implements MiShu{
@Override
public void kaiHui() {
// TODO Auto-generated method stub
System.err.println(" ");
}
}
/*
* CEO
*/
public class TheCEO implements MiShu{
@Override
public void kaiHui() {
// TODO Auto-generated method stub
System.err.println(" CEO ");
}
}
3.代理人、明ちゃんが出荷しています.つまり秘書の対象ですが、例の名前に問題があります.例の秘書類は会議できる人と呼ぶべきです./*
*
*
*/
public class XiaoMing implements MiShu{
private MiShu mishu;
public XiaoMing(MiShu mishu) {
// CEO
this.mishu = mishu;
}
public XiaoMing() {
//
this.mishu = new TheBoos();
}
@Override
public void kaiHui() {
// TODO Auto-generated method stub
System.err.println(" ");
mishu.kaiHui();
}
}
4.会議が始まりました.明日さんは詰め物をし始めます.public class MyClient {
public static void main(String[] args) {
//CEO ,
TheCEO ceo=new TheCEO();
XiaoMing xiaoming=new XiaoMing(ceo);
xiaoming.kaiHui();
//
xiaoming=new XiaoMing();
xiaoming.kaiHui();
}
}
さあ、出力を見てください.
CEO
とてもうれしいです.私達の明さんは無理をして成功しました.