On Mar 19, 2012, at 12:45 PM, Brian Lambert wrote: > ivars in the .H file of my Foo class, which no one other than me will ever > use, should be relatively OK. After all, I'm not trying to prevent myself > from knowing anything about my implementation of Foo. I'm just trying to > ensure that my *intent* for my class is well-understood to other programmers > who will work on Foo in the future.
In my experience, that's not a good way to think about what writing an OO program. (1) The main programmer who may work on Foo in the future may be me, but I think of him as one of those "other programmers". I can guarantee that I won't have the slightest idea what this program does or why my intent was, probably as soon as tomorrow, if I don't express it clearly in the program itself. (2) OOP is about expressing contracts. Now that ivars that are not intended as part of the public face of a class no longer have to be in the header file, it's best to take advantage of it if possible so that the program expresses the intended architecture. Here's a case where declaring the ivars in the implementation file wouldn't have worked for me: https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/ch37p920downloader/p754p772downloader/MyDownloaderPrivateProperties.h Okay, it's properties not ivars, but the idea is the same. I want a subclass of MyDownloader to know about these properties. The way to do that is to declare them in a class extension and have the subclass (MyImageDownloader) import the file with that class extension. Hope that helps - m. -- matt neuburg, phd = m...@tidbits.com, http://www.apeth.net/matt/ pantes anthropoi tou eidenai oregontai phusei Programming iOS 5! http://shop.oreilly.com/product/0636920023562.do RubyFrontier! http://www.apeth.com/RubyFrontierDocs/default.html TidBITS, Mac news and reviews since 1990, http://www.tidbits.com _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com