J'essaye d'écrire un programme de simulation de conduite et j'ai besoin d'aide pour la conception. J'ai une interface appelée RoadObjects qui contient pour l'instant des véhicules et des mammifères. J'ai besoin de mettre en place différents types de voitures comme des camions, des berlines, des semi-remorques. ils ont des méthodes en commun et d'autres uniques. Plus tard, j'ajouterai d'autres types de véhicules et de mammifères. Je ne veux pas utiliser l'héritage et j'essaye de le faire selon des principes de conception et des modèles tels que le principe ouvert-fermé et l'usine. Maintenant, ma question est, dois-je concevoir comme ceci:Implémentation d'une classe en Java
RoadObject interface
Vehicle extends RoadObject
Mammal extends RoadObject
SedanImpl implements Vehicle
TruckImpl implements Vehicle
People implements Mammal
...
...
ou devrais-je avoir tout simplement pas véhicule et les gens interface et faire cela?
RoadObject interface
SedanImpl implements RoadObject
TruckImpl implements RoadObject
People implements RoadObject
Nouvelle question: Je veux utiliser un modèle d'usine, de choisir quel type de véhicules par exemple. Je fais donc un VechicleImpl et VechicleImplFactory il pourrait ressembler à ceci:
RoadObject interface
Vehicle extends RoadObject
VehicleImpl implements Vehicle
Mammal extends RoadObject
SedanImpl implements Vehicle
TruckImpl implements Vehicle
People implements Mammal
Est-ce ce genre de mauvaise conception? Parce que VehicleImpl aura beaucoup de méthodes en double de SedanImpl, TruckImpl etc. Ou si je voulais avoir une usine qui crée un véhicule, où cela devrait-il être?
Modélisation des classes supplémentaires pour les '' Truck' et Sedan' peut ne pas être nécessaire à tous, donc avoir un 'VehicleImpl' peut remplir toutes vos exigences si vous pouvez mapper les informations requises pour' Truck' et 'Sedan' à votre' VehicleImpl'. – home
@home, mais theres la question des méthodes qui sont uniques au camion et à la berline – Dan
Vraiment, dites-moi :-) – home