ConcreteState对象可以更改它们所驻留的上下文吗?

亚历克斯·肯尼迪

我可能会从“设计模式,可重用的面向对象程序设计的元素”这本书的这一部分中误解这句话。

上下文可以将自身作为参数传递给处理请求的State对象。这使State对象在必要时访问上下文。

如果传递了ConcreteState的上下文,Request(this);该状态是否允许更改上下文本身?

在本例中,我正在处理Context是一个Windows Form,其状态如FormStartFormStop我想进行更改,以便在更改状态时,表单中的某些按钮被禁用/显示为灰色。据我所知,ConcreteState的构造函数可以将上下文作为参数传递,然后状态可以对上下文进行更改。

我正在使用的定义是:

  • 上下文:定义客户感兴趣的界面
  • 状态:定义用于封装与特定上下文状态相关联的行为的接口
  • ConcreteState:每个子类实现与上下文状态关联的行为
阿德里安·W

模式并不禁止状态,以进行更改Context

从部分引用的示例代码中的状态GoF的书的章节:

TCPState [...]也可以更改状态 TCPConnection

TCPConnection就是Context在这种情况下。

该代码显示了修改上下文的状态的另一个示例:

void TCPEstablished::Transmit(TCPConnection* t, TCPOctetStream* o) {
    t->processOctet(o);
}

在中传输某些TCPConnection内容可能会导致更改TCPConnection

因此,绝对可以。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

此类泄漏上下文对象吗?

来自分类Dev

我们可以将浏览器的JavaScript的执行上下文从Window对象更改为其他对象吗?

来自分类Dev

我可以创建仅通知那些已更改的上下文属性的订阅吗?

来自分类Dev

每个请求的上下文路径都可以更改吗?

来自分类Dev

我可以更改用于注入处理程序的上下文吗?

来自分类Dev

在对象文字的声明中继承上下文(此)?自我可以吗?

来自分类Dev

我可以通过Django视图在Decorator中访问上下文对象吗

来自分类Dev

我可以将两个对象传递给createPage中的上下文吗?

来自分类Dev

对象包含有关使用它们的上下文的信息是一种代码味道吗?

来自分类Dev

Service() 的上下文会导致“此字段泄漏上下文对象”吗?

来自分类Java

JavaCC可以通过上下文区分令牌吗?

来自分类Dev

骆驼上下文可以在EAP上自动启动吗

来自分类Dev

上下文的内容可以在grpc中传输吗?

来自分类Java

我可以在@Scheduled中添加上下文吗?

来自分类Dev

Twig_SimpleFunction可以修改上下文吗?

来自分类Dev

我可以在Snowflake中编辑会话上下文吗?

来自分类Dev

受管理对象上下文是事务日志吗?

来自分类Dev

当不在对象上下文中时使用$ this吗?

来自分类Dev

角服务“ this”正在更改窗口对象的上下文

来自分类Dev

是否可以将对象传递给上下文?

来自分类Dev

我在泄漏上下文吗?

来自分类Javascript

JavaScript是上下文无关语言吗?

来自分类Dev

我理解持久上下文吗?

来自分类Dev

更改默认的pyspark上下文

来自分类Dev

反应上下文更改未显示

来自分类Dev

在JavaScript中更改“ this”的上下文

来自分类Dev

更改上下文路径格式

来自分类Dev

在$ .each()中更改上下文

来自分类Dev

更改 url 上下文路径

Related 相关文章

  1. 1

    此类泄漏上下文对象吗?

  2. 2

    我们可以将浏览器的JavaScript的执行上下文从Window对象更改为其他对象吗?

  3. 3

    我可以创建仅通知那些已更改的上下文属性的订阅吗?

  4. 4

    每个请求的上下文路径都可以更改吗?

  5. 5

    我可以更改用于注入处理程序的上下文吗?

  6. 6

    在对象文字的声明中继承上下文(此)?自我可以吗?

  7. 7

    我可以通过Django视图在Decorator中访问上下文对象吗

  8. 8

    我可以将两个对象传递给createPage中的上下文吗?

  9. 9

    对象包含有关使用它们的上下文的信息是一种代码味道吗?

  10. 10

    Service() 的上下文会导致“此字段泄漏上下文对象”吗?

  11. 11

    JavaCC可以通过上下文区分令牌吗?

  12. 12

    骆驼上下文可以在EAP上自动启动吗

  13. 13

    上下文的内容可以在grpc中传输吗?

  14. 14

    我可以在@Scheduled中添加上下文吗?

  15. 15

    Twig_SimpleFunction可以修改上下文吗?

  16. 16

    我可以在Snowflake中编辑会话上下文吗?

  17. 17

    受管理对象上下文是事务日志吗?

  18. 18

    当不在对象上下文中时使用$ this吗?

  19. 19

    角服务“ this”正在更改窗口对象的上下文

  20. 20

    是否可以将对象传递给上下文?

  21. 21

    我在泄漏上下文吗?

  22. 22

    JavaScript是上下文无关语言吗?

  23. 23

    我理解持久上下文吗?

  24. 24

    更改默认的pyspark上下文

  25. 25

    反应上下文更改未显示

  26. 26

    在JavaScript中更改“ this”的上下文

  27. 27

    更改上下文路径格式

  28. 28

    在$ .each()中更改上下文

  29. 29

    更改 url 上下文路径

热门标签

归档