This is a pattern I have discovered surprisingly often (you can also replace Patient with Customer and Doctor with Employee etc):
public interface Patient {
String getFirstName();
String getLastName();
String getAddress();
// ...
}
public interface Doctor {
String getFirstName();
String getLastName();
String getAddress();
// ...
}
Either doctors are very healthy, or they are so shy they want another identity as patients :)
Of course extra complexity isn't good either, but I have seen more often reason to extract the missing Person entity here than not to.
Originally published on 2007-10-05 at http://www.jroller.com/wipu/entry/missing_person under category Software Architecture