Loose Coupling vs. Information Hiding and Ease of Change
Posted
by cretzel
on Stack Overflow
See other posts from Stack Overflow
or by cretzel
Published on 2008-12-12T07:51:20Z
Indexed on
2010/06/03
0:24 UTC
Read the original article
Hit count: 484
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:
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.
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?
© Stack Overflow or respective owner