GOF设计模式之状态模式(state)与观察者模式(Observer)
状态模式(state)
用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。
状态接口
1 | public interface State { |
实现接口
1 | /** |
状态管理
1 | /** |
测试
1 | public class Client { |
结果
修改状态
房间空闲没人住
修改状态
房间已预订
观察者模式(Observer)
主要用于1:N的通知。当一个对象的状态变化时,他需要及时告知一系列对象,令他们做出响应。
接口
1 | public interface Observer { |
实现接口
1 | public class ObserverA implements Observer{ |
观察者容器
1 | public class Subject { |
继承
1 | public class ConcreteSubject extends Subject{ |
测试
1 | public class Client { |
结果
200
200
200