|
Тема |
Re: OO Design [re: lexo] |
|
Автор |
josarjan () |
|
Публикувано | 17.12.03 14:36 |
|
|
Защо не:
class Profession {
private Profession() {}
public static final Profession ARHITECT = new Profession();
public static final Profession MECHANIC = new Profession();
}
в смисъл - имаш ли наистина специфичен код за всяка професия. Във тия всички въпроси, които питаш няма такова нещо - има само дали човек има дадена професия.
Иначе - друго което ми идва наум да си направиш така както е:
boolean is(Class professionClass) {
for (int i = 0; i < professions.length) {
if (profession instanceof professionClass) {
return true;
}
}
return false;
}
class Test {
void test() {
m.is(Architect.class);
}
}
Това е почти същото като твоето де.
Н знам - според мене важното е дали има смисъл всяка професия да е отделен клас? Т.е. имаш ли нещо, което отличава една професия от друга (примерно да има метод в Profession.doSomething()). Ако такъв метод нямаш (или всичко, което имаш е например - getName()) просто няма нужда от класове и интерфейси за професии.
|
| |
|
|
|