java设计模式-观察者模式

本文通过一个观察者模式的实例——看电影的过程,来帮助读者深入理解这一设计模式。`Movie` 类作为被观察者,维护着观众列表,当电影状态改变时,会通知所有观众。`Person` 类作为观众的抽象类,定义了通知方法。`Weixiyang` 类作为具体观众,实现了观看电影的行为。通过这种方式,演示了如何在代码中实现观察者模式,以达到对象间的动态耦合。
摘要由CSDN通过智能技术生成

写一个观察者模式demo,加深自己印象,方便理解

把整个抽象的通知观察者过程比拟成看电影的过程,可能更容易理解一点

//被观察者--电影
public class movie{
  privite List<person> persons = new ArryList<person>(); //这个电影的观看者
  public String action;  //动画
  
  pubilc void setAction(String action){
		this.action = action;
		nofityAllPersion();
  };
  
  public viod joinPerson(Person person){
    this.persons.add(person);
  }
  
  public void nofityAllPersion(){  //通知每个观看者的方法
	for(Person person : persons){
		person.look();
	}
  }
}

//观众的抽象类
public abstract class person{
  protected Movie movie;
  public abstract viod nofityAllPersion();
}

//观众的实体类
public class Weixiyang extends Person{

  public Weixiyang (Movie movie){
	this.movie = movie;
	this.movie.joinPerson(this);
  }
  
  @Override
  public void look(){
	System.out.println(this.toString + "看到了电影画面");
  }
  
}

//电影开始
public class Demo {
   public static void main(String[] args) {
      Movie movie = new Movie();
 
      new Weixiyang(movie);
     
      movie.setState(15);
      
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值