Les modèles de conception aident un codeur à écrire du code propre, efficace et non répétitif avec moins de couplage ou de dépendance entre les unités d'opération individuelles. Chaque fois qu'un codeur analyse les exigences du client, le modèle de conception approprié pour la mise en œuvre du code est la première solution à prendre en compte. Le code serait mis à l'échelle plus tard ; certaines contraintes supplémentaires, si elles doivent être ajoutées, peuvent également être intégrées.
Les modèles de conception sont toujours choisis dans le contexte de l'évolutivité et d'une mise en œuvre propre.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Nous optons pour des modèles lorsque nous cherchons à les remplir via certaines implémentations ; c'est ce qu'on appelle des modèles.
Et dans le domaine du codage, nous utilisons ces paradigmes dans les types de scénarios commerciaux suivants.
Scénario 1 –
Vous êtes censé concevoir une solution Web pour un modèle en Java dans laquelle il vous est demandé d'implémenter les propriétés caractéristiques d'un véhicule comme sa formule de calcul de vitesse, son calcul de couple, etc. Donc pour un vélo, ce serait différent de que serait pour une voiture, et si nous voyons du point de vue de l'évolutivité, alors en ajoutant un modèle de base qui a juste le squelette externe de ces méthodes liées au calcul, puis nous venons d'ajouter des variantes de ces implémentations dans notre code, créant ainsi un flexible conception. En voyant ce modèle, seul un utilisateur aurait une idée des fonctionnalités que vous proposez et attendrait avec impatience les cours associés.
Scénario 2 –
Une autre cause peut être de générer un modèle commun pour les classes de base de données que vous allez appeler dans votre projet ; vous utilisez peut-être Oracle, MySQL ou DB2, et probablement dans différents scénarios de codage, vous avez hâte de vous connecter avec eux à différents moments, donc dans le modèle, vous pouvez fournir le nom d'utilisateur, le mot de passe, obtenir les propriétés de connexion, etc. et les classes d'extension donneraient les détails de mise en œuvre au fur et à mesure que vous recherchez.
Un développeur Java sait comment implémenter ce genre de fonctionnalité !! Oui, une classe abstraite est la bonne réponse ; J'espère que vous savez que chaque fois que nous avons des scénarios dans lesquels des entités étroitement liées doivent être mises dans une solution, nous choisissons des classes abstraites (dans les autres cas, les interfaces résolvent également notre objectif).
1. Créez un résumé de la classe de base qui intègre également les méthodes de modèle et les méthodes abstraites.
2. Les méthodes de modèles sont de nature définitive et ne changeront pas par la suite.
3. Les méthodes abstraites doivent être implémentées via le code de logique métier pris en charge dans les classes d'implémentation.
4. La méthode pourrait être rendue abstraite dans les classes enfants si elle ne doit pas y être implémentée uniquement.
5. Prendre soin de la gestion des exceptions de manière appropriée est également un scénario important.
6. Bon choix sur ce qui doit être marqué comme abstrait et ce qui ne doit pas l'être.
Les méthodes avec des corps dans la classe de base sont conçues pour être le type final car elles ne doivent pas être remplacées ; comme pour la classe de véhicule, le calcul du régime peut être le même.
Ci-dessous, nous avons défini l'exemple basé sur un modèle Java, il intègre l'exemple d'implémentation de celui-ci –
public abstract Vehicle { String fuelType; Int countOfSeats; public abstract double calcSpeed() throws Exception; public abstract double calcTorque() throws Exception; public final void templateMethod() { Task1(); Task2(); Task3(); } public Bike extends Vehicle { @Override public abstract double calcSpeed() throws Exception { try { return distance/time; } Catch(Exception e) { System.out.println(e.printStackTrace()); } } @Override public abstract double calcTorque() throws Exception { try { return radialLength * force; } Catch(Exception e) { System.out.println(e.printStackTrace()); } } } public car extends Vehicle { Int doorCount; // door doesn’t exist in all vehicles so has been added here @Override public abstract double calcSpeed() throws Exception { try { return distance/time; } Catch(Exception e) { System.out.println(e.printStackTrace()); } } @Override public abstract double calcTorque() throws Exception { try { return radialLength * force; } Catch(Exception e) { System.out.println(e.printStackTrace()); } } }
Vous pouvez utiliser Eclipse ou d'autres plateformes de compilation en ligne pour vérifier cette implémentation en utilisant vos propres implémentations.
1. De préférence, Java 8 doit être installé.
2. Les variables système doivent être correctement configurées pour JRE.
3. Un IDE comme Eclipse est également requis, qui vérifie automatiquement les erreurs syntaxiques.
4. Débogage avec l'EDI uniquement.
5. Plugins pour l'analyse de la conception de modèles.
6. Outils d'association de diagrammes de classes pour connaître la relation d'héritage de niveau supérieur entre les classes que vous avez créées dans l'implémentation du modèle de conception de modèle.
7. N'importe quel Windows, Linux ou MAC ferait votre tâche.
Connaissez-vous les concepts d'implémentation d'interface ? Avec Java 8, doté de nouvelles fonctionnalités, vous pouvez essayer l'implémentation de l'interface avec les classes dérivées mentionnées ci-dessus, et vous pouvez essayer différents scénarios commerciaux ; dans les versions Java 8 et supérieures, vous êtes libre de remplacer les méthodes abstraites des interfaces dans les classes d'implémentation, vous devriez jeter un coup d'œil à la documentation présentée par Oracle à ce sujet.
Il serait utile que vous exploriez également d'autres modèles de conception, car ils sont importants et attendus de la part des développeurs Java expérimentés de l'ensemble du secteur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!