状态与行为

vsg*_*vsg 7 oop state behavior

有时对象由纯数据组成.这些对象具有字段,访问器,实际上没有其他方法.

有时对象由纯粹的行为组成.它们具有表示其状态的其他对象,或者数据作为方法参数传递.通常这些对象代表算法或某种策略.

您更喜欢哪种州/行为比例?
什么更可维护?
什么更容易出错?

too*_*php 1

我喜欢的对象(按优先级顺序):

  1. 有关于如何使用它们的详细说明,这样您就不会达到无效状态。
    • 当您调用方法时,如果异常未处于正确的状态,则抛出异常。
    • 拥有允许您在调用方法之前断言它们处于正确状态的方法。

当这些措施到位时,就很难把事情搞砸了。

没有行为的对象也可能是哈希表,没有状态的对象也可能是函数的集合。

  • 如果对象以这样的方式实现,即使发生异常,它也不会进入不一致的状态,那就更好了。 (3认同)