Date: Sat, 07 Jun 2008 14:08:46 -0700
From: Bill Bumgarner <[EMAIL PROTECTED]>

On Jun 7, 2008, at 1:54 PM, Denis Bohm wrote:
That is handled by the Java example above (via the "Object...
args").  A method with any number of arguments can be passed to
registerUndoWithTarget.  So you could do something like:

undoManager.registerUndoWithTarget(this, "setFrame", true,
splineStruct);

So, Java *can* do dynamic dispatch, but cannot catch a method dispatch
automatically -- you effectively have to compose the method invocation
manually through a comparatively verbose API.

No, not really.

I haven't used Java's undo support, so I'll take Denis's word that it uses the pattern he's showing. But it didn't need to, nor is there anything to stop someone from making an undo manager more like Cocoa's.

In particular, you could simply create an anonymous inner class implementing the Runnable interface (or some interface specifically declared by the undo manager, if you prefer). The interface would be implemented with a method that does whatever you want to happen when the undo is performed.

If anything, it's my opinion that this (or, especially the C# version where the method can stand alone without having to be wrapped in an interface implementation) is actually more elegant than Cocoa, because it doesn't rely at all on passing arguments. Yes, Obj-C can because of the way it works handle passing the arguments in a more implicit way, but there are patterns in C# and Java that avoid the need to deal with arguments altogether.

But, as I said before...this sort of question seems just as off-topic as the previous one. The only difference is that here you're trying to establish Obj-C/Cocoa as superior, rather than inferior. But what makes the discussion off-topic is that the discussion is considering a ranking of the languages at all, not whether Obj-C/Cocoa comes out on top or not.

Languages are what they are. Making assertions regarding the superiority or inferiority of one over the other is pointless, and likely to only lead to religious wars.

Pete
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to