行为型模式之观察者模式

观察者模式用于描述对象之间的依赖关系,它引入了观察者和观察目标两类不同的角色,并且提供抽象层,使得增加新的观察者和观察目标都很方便。
模式定义:对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象都得知通知并自动更新。观察者模式又叫做 发布-订阅模式、模型-视图模式、源-监听器模式或从属者模式。观察者模式是一种对象行为型模式。

代码实现:
(1) 抽象目标类

public  abstract class MyuSubject{
      protected ArrayList observers=new ArrayList();
      public void attach(MyObserver observer){
                observers.add(observer);
  }
      public void remove(MyObserver observer){
                observers.remove(observer);
  }
     public abstract void cry();
}

(2)抽象观察者类

public interface MyObserver {
   void respose();

}

(3)具体目标类

public class cat extends MyuSubject{
    public void cry(){
          System.out.println("观察目标改变"):
              System.out.println("观察者会发生的变化如下:"):
        for(Object obs:observers){
             ((MyObserver )obs).response();
  }
     
 }

}

(4)具体观察者类

public class Mouse implements MyObserver {
    public void response(){
          System.out.println("老鼠跑"):

 }

}

(5)具体观察者类

public class Dog implements MyObserver {
    public void response(){
          System.out.println("狗跑"):

 }

}

(6)客户端测试类

public class clent{
    public static void main(String []args){
       MyuSubject myuSubject=new Cat();
        MyObserver ob1=new Dog();
        MyObserver ob2=new Mouse();
        myuSubject.attach(ob1);
        myuSubject.attach(ob2);
        myuSubject.cry();
 }

 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值