嗨,我是一名 java 开发人员,这些天我也开始从事 iphone 开发工作。我想知道 Java 的命令模式与 iphone 中的委托模式有些相似,反之亦然,因为在两者中都有其他人在为受让人工作。有人可以启发我吗?
问问题
1182 次
1 回答
9
严格来说,它们是不同的,虽然是互补的。
Command pattern
- 这是一个操作/请求/动作作为对象的封装。尽管将操作封装为对象的常见原因是将其发送给委托人,但您可能还需要使用命令模式的各种其他原因,例如创建撤消机制或编写审计日志。
Delegate pattern
- 这是一个物体阴影在另一个物体后面以支持它。它通常是一对一的关系。在 iPhone 中,一个窗口可能有一个窗口委托。窗口可能会询问窗口委托如何响应某些用户操作。如果不同的用户操作是自包含的对象,那么它们可能是命令模式的一个示例,但这是与 Window 委托不同的想法。
据我了解(诚然,很少),Cocoa 模型中的委托不使用委托者和被委托者之间的命令对象(尽管方法调用有时在 OO 上被称为“消息”,就好像它是一个实际实体)。
这两个想法是互补的,经常一起使用,但它们是不同的想法。您可以使用不带委托的命令模式和不带命令对象的委托。
看:
http://en.wikipedia.org/wiki/Command_pattern
于 2010-12-23T06:01:10.047 回答