状态模式,命令模式和策略模式的区别
2019-04-07 本文已影响0人
帅子锅
设计模式中有三个模式State, Command, Strategy,这三种设计模式都是行为型设计模式,在结构上又都很像,所以很多时候分不清楚。
区分这三种模式不要focus在结构上,这三种模式最主要是在使用意图上有区别:
状态模式:内部维护一个状态,会随着public api的调用进行相应的状态转移。外界不需要知道状态及其变化情况。
命令模式:根据客户的请求封装相应的命令,处理者就不用care这个命令是什么,该怎么处理。只用去调用统一的execute接口即可,当然不同的命令有不同的接口名称,也可以不叫execute。
策略模式:你有很多不同的算法,所以你可以封装算法,使用者执行相同的功能,但是使用不同的方法。这就是策略。