On Fri, 30 Mar 2007 18:22:22 +0200, Tim Johnson wrote:
Hi,
I know the rules for naming accessor and setter methods. But what do I
do
when the accessor method needs a parameter? I'll try to provide an
example.
A vendor sells an item called #apple. If I want to get the vendor's
price
for that #apple, I use a method such as the following:
Vendor>>priceOf: aSymbol
Now, to make the setter method, I have followed this pattern:
Vendor>>priceOf: aSymbol is: newPrice
I've seen the suggestions in other responses to this and I don't like them.
Calling "everything" a setter/getter seems to be J-zeitgeist but, what you
have here is a collection of prices, indexed by a symbolic key, rooted at
instances of Vendor.
Translated to Smalltalk language this is a variant of #at:put:
Vendor>>priceAt: aSymbol put: newPrice
Even more Smalltalk-ish, you'd have
aVendor pricebook at: aSymbol put: newPrice
People with an education in Smalltalk will immediately understand what's
happening when seeing a piece of your code which sends #priceAt:put:, even
in the absence of class comments :)
/Klaus
Does this follow traditional patterns? I'll admit I have read the first
half of "Smalltalk with Style" but not the second. Should I instead make
the setter method look like this:
Vendor>>setPriceOf: aSymbol to: newPrice
?
Thanks,
Tim
[PS - Thanks to everyone who has been helping me on here lately, I have
been lax in responding. You all bring up some good ideas and tips.]
_______________________________________________
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners