※ 引述《tyc5116 (累人啊....)》之铭言:
: 请问一下,像这样子的情形
: 有A物件和B物件,在执行时会有数个状态变化(ex stop,start,run)
: 两者状态的数量及种类不尽相同
: (ex A:stop,start,run,wait B: stop,run,check,有相同的,也有不相同的)
: 同样的状态,其动作也不相同(ex. start时,A执行thing1,b执行thing2)
: 刚开始设计时,怎样的设计可能会比较理想呢?
: 另外
: 1.这种情形以state pattern设计适合吗
: 2.有建议以其它的pattern设计会更合适的吗?
看不出适合 state pattern 的理由,
同时也看不出不适合 state pattern 的理由。
state pattern 的重点不是有‘状态’这件事,
而是在不同的状态下,behavior 会变。
你的描述只到了有 A, B instances,
他们各自有一些 method,仅此而已。
状态的变化,而导致物件行应该改变时,
才值得思考要不要用 state pattern。
像我有个 Playback,当 state 还没有进入 playing 时,
要如何提供 record 这个行为?
若 A, B 有相依相关,A 需看 B 的脸色做事,或 B 需看 A 的脸色做事,
那就想成简单的物件使用可以了,物件的本质是持有‘状态’的集合。
但跟 state pattern 毫无关系。
若硬是要说有 pattern 存在的话,也许是某个 Strategy Pattern 设计,
你让 api user 决定某个物件的实作能由 user 提供 api 默认值之外的逻辑。