Le modèle est l'un des modèles de conception comportementale, une classe abstraite définit un ensemble de manières/modèles pour exécuter ses méthodes.
Ses sous-classes peuvent remplacer/implémenter ces méthodes mais l'invocation doit être de la même manière que celle définie par une classe abstraite
Comprenons cela avec un exemple :
Concepts clés
Modèle : Une classe abstraite définissant la structure/voie/modèle de l'algorithme
Mise en œuvre concrète : Mise en œuvre concrète du modèle
Client : Client qui utilisera ce modèle
public abstract class GameModèle{ //these below methods can be overridden based on the type of game public abstract void initialize(); public abstract void startPlay(); public abstract void endPlay(); //All the subclasses must use this same method to play the game i.e. following the same template present in this method, //Hence it is declared as final. public final void play(){ initialize(); startPlay(); endPlay(); } } public class Cricket extends GameModèle{ @Override public void initialize(){ System.out.println("Cricket has been initialized"); } @Override public void startPlay(){ System.out.println("Cricket game has been started"); } @Override public void endPlay(){ System.out.println("Cricket game has ended"); } } public class Football extends GameModèle{ @Override public void initialize(){ System.out.println("Football has been initialized"); } @Override public void startPlay(){ System.out.println("Football game has been started"); } @Override public void endPlay(){ System.out.println("Football game has ended"); } } public class Main{ public static void main(String args[]){ //Create a football game object GameModèle football = new Football(); football.play();// play() will strictly follow the sequence of method execution defined in the final play() method GameModèle cricket = new Cricket(); cricket.play(); } }
Sortie :
Football has been initialized Football game has been started Football game has ended Cricket has been initialized Cricket game has been started Cricket game has ended
remarque : le code suit tous les principes de conception comme LSP, ISP, SRP, OCP
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!