On Nov 30, 2012, at 3:33 PM, Igor Stasenko wrote: > It says: > > "I am an abstract collection of elements with a fixed range of > integers (from 1 to n>=0) as external keys." > > now that leaves me clueless, why then it does not defines (introduces) > a protocol: > #at: > and > #at:put: > > at least as an abstract one , i.e. subclassResponsibility > > is it because they are already in Object protocol? And because > subclasses (like Array) using default #at: implementation? > > I don't know, but i think Object should not have #at:/#at:put: > protocol.. because: > - it applicable only to variable subclasses > - many classes have own implementation of it > - the behavior behind this is to access a variable fields . while > other classes use this protocol for higher abstractions (like > dictionaries) > > so, to my thinking, Object should not define this protocol.. for this > purpose we having #basicAt:/put: methods. > > btw, just an idea to clarify things even more, we could rename them to > variableAt: [put:] > (or any other name which properly tells that method provides an access > to variable fields of object). > + 1
> > -- > Best regards, > Igor Stasenko. >
