设计模式:观察者模式

1、什么叫观察者模式

例子说明: 假如你喜欢一个超级美女, 别人也喜欢嘛,因为是  超级 美女喽,于是大家都心里有小算盘,都在看着美女,美女喜欢打球的男生,于是你们都是练球, 美女要是喜欢会唱歌的男生,于是你们都去学歌,是吧!男人都不是好鸟。。。。 

我们把它抽象化一下,对象间有着一种一对多的关系, 也就是一个美女对于很多男生,它们之间在依赖的关系, 男生依赖着美女,美女喜欢什么,男生就就学什么。 这就是美女喜欢什么,依赖它的男生就会更新自己的泡妹技能

2、代码说明:

import java.util.Vector;

public abstract class Gril { // 这个类,是让具体的美女去继承


private Vector<Man> mans = new Vector<Man>();


public void addMan(Man man) {
BadBoy boy = (BadBoy)man;
System.out.println("有人在观察 我 , 他的名字: " + boy.getName());
this.mans.add(man);
}


public void deleMan(Man man) {

this.mans.remove(man);
}


protected void notifyMans() {  //去通知男生,我喜欢什么,你们就必须依赖我,去学习,不然你 没机会
for (Man man : mans) {
man.update(); 
}
}


public abstract void ILikeDoSomething(); //让具体的女生去实现
}

//这是男生必须实现的接口,说白了,你要是喜欢它,就必须做出变化

public interface Man {


public void update();
}

// 具体的男生 , 我叫它坏男生

public class BadBoy implements Man {


public String name;

public String getName() {
return name;
}
public BadBoy(String name) {
this.name = name;
}


@Override
public void update() {
System.out.println("我是坏男生 " + this.name + ", 我又要学习新的技能了...");
}


}

//这是美女喽, 傲娇!



public class WellGril extends Gril {


@Override
public void ILikeDoSomething() {
System.out.println("我喜欢会唱歌的男生");
this.notifyMans();
}

}


//测试



public class test {


/**
* @param args
*/
public static void main(String[] args) {
Gril wellGril = new WellGril();   //美女出来啦
BadBoy ming  = new BadBoy("小明");  //坏男生小明出来啦
wellGril.addMan(ming);  // 向美女的男生库中添加 , 意思就是加入追美女的阵营
BadBoy wang = new BadBoy("小王"); //坏男生小王出来啦
wellGril.addMan(wang); //加入追美女的阵营
wellGril.ILikeDoSomething(); //我们傲娇的美女,要喜欢会唱歌的男生
}


}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值