Java命令模式与iPhone代表模式

Man*_*ann 5 java design-patterns cocoa-design-patterns ios4

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

Ber*_*t F 7

严格地说,它们是不同的,尽管是互补的.

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

Delegate pattern - 这是为了支持它,在另一个后面有一个对象阴影.它通常是一对一的关系.在iPhone中,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

  • 值得注意的是,你不应该考虑这些'java设计模式'或'iphone设计模式'.它们是平台中立的,适用于多种OO语言. (5认同)