Hi.

> >  > I don't see any changes proposed.
> >
> >
> > I propose to use the instance variable in place of the accessor.
> >
> >
> >  > I see a couple of statements that getters are used (usually considered
> >  > good), and a question about over-riding.
> >
> >
> > Getters are for accessing to encapsulated data. Within the class itself the
> >  data is readily accessible, so using the accessor is, at best, less
> >  efficient.
> 
> Not necessarily - if it turns out that the field needs to be
> synchronized, then always using the getter/setter rather than direct
> access makes it very easy to fix the problem.

As I note in
  https://issues.apache.org/jira/browse/MATH-349
you cannot always use the getters/setters, namely in contructors.

I don't have a broad view of CM yet, but in principle I'd think it's better
to avoid synchronization at the CM level, and rather push toward
immutability.
E.g. do we loose performance significantly if we have to instantiate a new
"NormalDistributionImpl" for each combination of "mean" and "sigma" instead
of calling "setMean(m)" and "setStandardDeviation(s)" on an exisitng object?
[A few months ago, people here convinced me that we don't, in the case of
"Vector3D".]

> >  Moreover, if, by mistake, a sub-class overrides the accessor, you can get
> >  inconsistent result: the overridden accessor can return some value while it
> >  is another (the one stored in the instance variable) that is used to 
> > perform
> >  the calculation.
> 
> If there is a good reason to override the getter/setter, then it is
> likely that the sub-class wants the new value to be used throughout.

Can you imagine a not contrived example? I.e. why would one inherit from a
class while throwing away the implementation?


Best,
Gilles

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to