design-patterns - 在状态设计模式中,为什么主类一开始就需要知道所有的状态?
问题描述
我正在读一本关于设计模式的书,代码写成:示例:
class Fan{
private IState State1;
private IState State2;
.
.
.
public IState getState1(){
return State1;
}
public IState getState2(){
return State2;
}
然后在每个状态中从 Fan 类中获取下一个状态:
public class State1 implements IState{
.
.
.
public void execute(){
.
.
.
this.Fan.setState(this.Fan.getState2());
}
}
现在我的问题是为什么不直接说 this.Fan.setState(new State2()); 而不是 this.Fan.setState(this.Fan.getState2()); ? 我在网上搜索了很多人建议这是正确的做法,但我找不到原因!有人可以告诉我为什么它是优势吗?
解决方案
推荐阅读
- boolean - 流条件执行 TRUE,而不是 FALSE
- python - 诅咒应用程序抛出_curses.error:init_pair()返回ERR
- redux-toolkit - 为所有操作增加时间的中间件
- python - Scrapy“download_latency”单元?
- mysql - Talend 流程:在 TrestClient 中一次传递一个日期
- docker - 对 docker 标签的概念感到困惑
- c++ - 在 debian 8 中运行 make -j2 错误时,我的 build.log 文件中有一个非常奇怪的错误
- javascript - 我的代码是第二个。我需要尽可能短
- python - Waitress 和 GUnicorn 大数据输入比 Flask 开发服务器慢很多
- apache-camel - Camel route SNMP Trap route - V3 陷阱无响应