Re: Where are the boundaries of Cocoa and how are the boundaries perceived ?
Re: Where are the boundaries of Cocoa and how are the boundaries perceived ?
- Subject: Re: Where are the boundaries of Cocoa and how are the boundaries perceived ?
- From: Erik Buck <email@hidden>
- Date: Tue, 2 Oct 2007 06:32:43 -0700 (PDT)
Scott Anguish <email@hidden> wrote:
On Oct 2, 2007, at 1:43 AM, Scott Anguish wrote:
> KVC and KVO (and KVV/KVB) are all Foundation technologies. I'm not
> sure I'd classify them as controllers though...
Whoops, it was pointed out to me that KVV and KVB are actually AppKit
technologies.
In my opinion, KVC is primarily a naming convention and methods (added as a category on NSObject) that enables access to "attributes" by name regardless of whether the attributes are stored as instance variables, calculated, or loaded from an external source. The fact that appropriately named methods are called when attributes are accessed is in some respects just a (very important) implementation detail. KVC is useful in any part of MVC.
KVO is arguably a Model layer technology because management of dependant keys is a Model implementation detail, and automatic notification of changes to the Model is a traditional element of the MVC design going all the way back to Small-talk in the 1970s. I say dependant keys are a Model detail because which keys depend on other keys is best known only by the Model, and the Model could be changed to work differently with different dependencies and neither the View nor the Controller would be affected.
On the other hand, the KVO automatic notification of attribute changes exists so that Controllers and Views are kept up to date with the Model. In that respect, KVO starts to look like a Controller technology. NSController, which certainly is part of the Controller, relies on KVO for its implementation. If KVO is part of the Model then NSController is tightly coupled to the Models implementation which may not be desirable, but I suspect is normal.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden