Java命令模式与iPhone代表模式

时间:2010-12-23 05:38:23

标签: java design-patterns ios4 cocoa-design-patterns

您好 我是一名java开发人员,这些天我也开始从事iphone开发。我想知道Java的命令模式有点类似于iphone中的委托模式,反之亦然,因为两者都有其他人在为受让人工作。有人可以就此启发我吗?

1 个答案:

答案 0 :(得分:7)

严格地说,它们是不同的,虽然是互补的。

Command pattern - 这是操作/请求/操作作为对象的封装。虽然将操作封装为对象的常见原因是将其发送给委托,但是有许多其他原因可能需要使用命令模式,例如:创建撤消机制或编写审计日志。

Delegate pattern - 为了支持它,它在另一个后面有一个对象阴影。它通常是一对一的关系。在iPhone中,Window可能有一个Window委托。该窗口可能会询问Window委托如何响应某些用户操作。如果不同的用户操作是自包含对象,那么它们可能是命令模式的一个示例,但这与Window委托是一个单独的想法。

根据我的理解(不可否认,很少),Cocoa模型中的委托不使用委托者和委托者之间的命令对象(尽管方法调用有时在OO上称为“消息”,就好像它是一个真实的实体。)

这两个想法是互补的,经常一起使用,但它们是不同的想法。您可以在没有委托和委托的情况下使用命令模式而无需命令对象。


请参阅:

http://en.wikipedia.org/wiki/Command_pattern

http://en.wikipedia.org/wiki/Delegation_pattern

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html#//apple_ref/doc/uid/TP40002974-CH7-SW18