Hi folks,

I'm just reading Code Complete by Steve McConell and I'm thinking of
an Example he gives in a section about loose coupling. It's about the
interface of a method that calculates the number of holidays for an
employee, which is calculated from the entry date of the employee and
her sales. The author suggests a to have entry date and sales as the
parameters of the method instead of an instance of the employee:

int holidays(Date entryDate, Number sales)

instead of

int holidays(Employee emp)

The argument is that this decouples the client of the method because
it does not need to know anything about the Employee class.

Two things came to my mind:

1. Providing all the parameters that are needed for the calculation
breaks encapsulation. It shows the internals of the method on how it
computes the result.

2. It's harder to change, e.g. when someone decides that also the age
of the employee should be included in the calculation. One would have
to change the signature.

What's your opinion?


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to