设计模式

  • 状态模式 - 允许对象在内部状态改变时改变他的行为,对象看起来好像修改的他的类。
  • 代理模式 - 为另一个对象提供一个替身或占位符以访问这个对象,可以对这个对象进行缓存,同步,权限管理等各项操作。

状态模式

image.png

这样设计的好处,我们就简化的很多功能的校验,因为可以直接在不同的状态类里进行状态校验,而不用像之前的传统做法一样,进行各种判断。后续增加新的状态对之前的代码变更也不大。

代理模式

image.png

这只是一种最基础的代理模式的类图,还有很多种类型的代理,比如:

  • 权限代理
  • 动态代理
  • 缓存代理
  • 智能引用代理
  • 同步代理
  • 复杂性隐藏代理
  • 写入复制代理

等等不同的代理行为,他们的类图是基本类似的,他和包装类比较类似。