Java设计模式之观察者模式

转自: 

Java设计模式之观察者模式

下文笔者讲述java设计模式之观察者模式,如下所示:

观察者模式适用场景

观察者模式:
   是一种对象行为模式
   用于定义一种一对多的依赖关系
   当一个对象得到通知时,其相关的信息都会自动更新 

观察者模式涉及的四个角色 
抽象被观察者 
被观察者实现 
抽象观察者 
观察者实现 

抽象被观察者
interface ISubject {
	List<Observer> addObserver(Observer observer);
	void notifyObserver();
}

被观察者实现
public class SubjectImpl implements ISubject {
	List<Observer> observerList = Lists.newArrayList();
	
	@Override
	public List<Observer> addObserver(Observer observer) {
		return observerList.add(observer);
	}
	@Override
	public void notifyObserver() {
		for(Observer observer : observerList ) {
			observer.updateSomething(); 
		}
	}
} 

抽象观察者
interface IObserver{
	void updateSomething();
}
 
观察者实现
public class ObserverImpl implements IObserver{
	@Override
	public void updateSomething() {
	System.out.println("被观察者做了啥,我得做啥");
  }
} 

使用场景代码
public class Main{
    public static void main(String[] args) {
    IObserver observer = new ObserverImpl();
    ISubject subject = new SubjectImpl();
    subject.addObserver(observer);
    subject.notifyObserver();

  }
} 
观察者模式可使代码模块的高内聚低耦合的特性
  非常方便代码的扩展
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值