您好 我是一名java开发人员,这些天我也开始从事iphone开发。我想知道Java的命令模式有点类似于iphone中的委托模式,反之亦然,因为两者都有其他人在为受让人工作。有人可以就此启发我吗?
答案 0 :(得分:7)
严格地说,它们是不同的,虽然是互补的。
Command pattern
- 这是操作/请求/操作作为对象的封装。虽然将操作封装为对象的常见原因是将其发送给委托,但是有许多其他原因可能需要使用命令模式,例如:创建撤消机制或编写审计日志。
Delegate pattern
- 为了支持它,它在另一个后面有一个对象阴影。它通常是一对一的关系。在iPhone中,Window可能有一个Window委托。该窗口可能会询问Window委托如何响应某些用户操作。如果不同的用户操作是自包含对象,那么它们可能是命令模式的一个示例,但这与Window委托是一个单独的想法。
根据我的理解(不可否认,很少),Cocoa模型中的委托不使用委托者和委托者之间的命令对象(尽管方法调用有时在OO上称为“消息”,就好像它是一个真实的实体。)
这两个想法是互补的,经常一起使用,但它们是不同的想法。您可以在没有委托和委托的情况下使用命令模式而无需命令对象。
请参阅:
http://en.wikipedia.org/wiki/Command_pattern