J'ai une conception avec les classes suivantes:conseils de conception de classe (mettre en œuvre avec Java) - ENUM + héritage
public class Book {
protected BookColorType color;
public Book (BookColorType color) {
...
}
}
public enum BookColorType {
BLACK, WHITE
}
public enum ColorBookColorType {
BLACK, WHITE, RED, BLUE, GREEN
}
public class ColorBook extends Book {
protected ColorBookColorType color;
public ColorBook(ColorBookColorType color) {
// this will cause error has ColorBookColorType is not the same type as BookColorType
}
}
Comment puis-je mettre en œuvre ce qui précède avec Java et avec une meilleure conception de classe? Le point est que Book doit s'associer uniquement à BookColorType lorsque ColorBook (est un livre) et associer uniquement à ColorBookColorType (avec duplication BLACK et WHITE).
S'il vous plaît aviser, merci.
Ce qui fait '' un ColorBook' Book' dans ce cas? Ce qui est suspect selon vous avec la mise en œuvre actuelle? – nullpointer
Vous avez déjà fourni une implémentation Java, alors quelle est votre question ici? En ce qui concerne le design: il pourrait être préférable de faire de Book une interface ou une classe abstraite et une autre implémentation/sous-classe comme 'NonColoredBook'. Mon problème est que je ne peux pas imaginer ce que la couleur indiquerait ici, c'est-à-dire de quelle manière un livre NOIR serait différent d'un livre BLANC. Vous voulez élaborer? – Thomas
Semble comme un mauvais design et une mauvaise utilisation de l'héritage pour moi. – duffymo