![]() |
1
5
如果你有lambda,你就不需要“设计”模式的一半。 工厂?这只是一个返回新对象的函数。访客?噢!命令?匿名函数。翻译?接受字符串或其他内容的函数。战略?这是一个功能! 这只是lambda、函数和闭包。 因此,可以在使用命令模式的地方使用匿名(或其他命名)函数。 |
![]() |
2
2
如果命令只支持一个操作,则可以安全地使用匿名函数。 但是,每个命令都有多个操作并不少见。例如,用于撤消/重做处理的docommand/undocommand。或canexecuteCommand/executeCommand启用/禁用命令的UI功能。或者像getLocalizedCommandName之类的。在这些情况下,我将使用接口(而不是匿名函数的元组)。 |
![]() |
3
0
我会说“不”,因为函数不能真正封装命令的细节,如果它是匿名的,那么调用方和被调用方如何理解它所代表的内容? (如果你想学点书呆子的话,gof对copmmand模式的描述专门描述了使用一个对象进行封装,排除了基于函数的实现,尽管这很难说)。 |
![]() |
q126y · 对象的地址空间独立表示 9 年前 |