On Mar 11, 2008, at 3:59 PM, j o a r wrote:


On Mar 11, 2008, at 3:49 PM, Quincey Morris wrote:

Personally I prefer the factory method approach, a la [NSArray array] etc:


Note that factory class methods typically also return id for the same reason that init methods return id (NSArray, NSString, et.c.).

This in contrast to shared instances that are strongly typed (NSFileManager, NSHost, NSNull, et.c.).

Tthere are quite a few Cocoa classes where the factory method is strongly typed.

The cases where the factory method returns (id) are generally (but not always) the classes that are likely to be subclassed or in fact are already subclassed in the existing Cocoa hierarchy. This would automatically include any class that has a "mutable" variation. In these cases, the return is typed (id) because you do not, in fact, know what the type of the object is that the method will return in general.

In other cases, I think the class is either unlikely to be subclassed or it is not advisable to subclass it, and these tend to have strongly typed factory methods.

Examples:

NSAffineTransform:
  -transform

NSBundle:
  -bundleWithPath:, etc.

NSNumber:
  all "numberWith..." methods

NSValue
  all "valueWith..." methods

NSColor
  all "colorWith..." methods

... and many more.

- Dennis D.
_______________________________________________

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