设计模式

一、享元模式(Flyweight)

说到享元模式,第一个想到的应该就是池技术了,String常量池、数据库连接池、缓冲池等等都是享元模式的应用,所以说享元模式是池技术的重要实现方式。https://www.cnblogs.com/betterboyz/p/9361793.html

https://www.cnblogs.com/adamjwh/p/9070107.html

二、观察者模式

Subject(主题/被观察者)、Observer(观察者)

主题

public interface Subject {
  //注册观察者
  void registerObserver(Observer obj);
  //移除观察者
  void removeObserver(Observer obj);
  //当主题方法改变时,通知所有的观察者
  void notifyObserver();
}

观察者接口
public interface Observer {

  //当主题状态改变时,更新

  public void update(int version);

}

主题实现类
public class ASubject implements Subject {

  private List<Observer> observers;

  @Override
  public void addObserver(Observer obj) {
    observers.add(obj);
  }

  @Override
  public void deleteObserver(Observer obj) {
  int i = observers.indexOf(obj);
  if(i>=0){
    observers.remove(obj);
    }
  }

  @Override
  public void notifyObserver() {
    for(int i=0;i<observers.size();i++){
      Observer o=(Observer)observers.get(i);
      o.update(version);
    }
  }

}

 

posted @ 2019-09-08 23:59  绿色森林  阅读(106)  评论(0编辑  收藏  举报