Jacques Le Roux wrote:
> From: "Bilgin Ibryam" <[email protected]>
>> Adam Heath wrote:
>>> ComparableRange has inconsistent access to the instance variables of
>>> other ComparableRanges.  There are several methods that do some kind
>>> of comparison with another range.  Sometimes, those methods call the
>>> accessor methods.  Other times, direct variable access is used.
>>>
>>> Here's my take on this issue, based on the Concurrency in Practice
>>> book.  If ComparableRange is final, and not meant to be extended, then
>>> always do direct access, period.  If ComparableRange is supposed to be
>>> extended by other classes, then make the instance variables final(to
>>> force extended classes to use the accessors), 
>> How can making an instance variable final force using accessors? Do
>> you mean private instead of final?
> 
> Yes certainly, since final would  mean they will never change once
> assigned.
> Jacques

If the class is extensible, and a variable is final, but still might
need to be overridden, then it needs to be accessed thru a method.


> 
>> Bilgin
>>
>>> then the base class
>>> always must use the accessors.
>>>
>>> Of course, this kind of design pattern needs to be imployed in the
>>> rest of the code too.
>>>   
>>
> 

Reply via email to