Maison > Java > javaDidacticiel > le corps du texte

État

Mary-Kate Olsen
Libérer: 2024-09-22 22:15:32
original
676 Les gens l'ont consulté

État

L'État est l'un des modèles de conception comportementale. En cela, le comportement d'une classe change en fonction de son état.

Concepts clés :
Contexte : Classe/objet dont le comportement change en fonction de l'état
État : état abstrait
Concrete État : représente différents états, ce qui modifie le comportement de la classe Context.

Comprenons cela avec un exemple :

État.java

public interface État {
    public void doAction(Context context);
}
Copier après la connexion

Mise en œuvre concrète de l'État

public class StartÉtat implements État {
    private Context context;
    public StartÉtat(){}
    @Override
    public void doAction(Context context){
        this.context = context;
        this.context.setÉtat(this);
        System.out.println("Player is in StartÉtat");
    }

    public String toString(){
        return "Start État";
    }
}

public class EndÉtat implements État {
    private Context context;
    public EndÉtat(){}
    @Override
    public void doAction(Context context){
        this.context = context;
        this.context.setÉtat(this);
        System.out.println("Player is in EndÉtat");
    }

    public String toString(){
        return "End État";
    } 
}

Copier après la connexion

Principal

public class Main {
    public static void main(String args[]){
        Context context = new Context();
        État state = new StartÉtat();
        state.doAction(context);
        //current state
        System.out.println(context.getÉtat().toString());

        État state2 = new EndÉtat();
        state2.doAction(context);
        //new État
        System.out.println(context.getÉtat().toString());
    }
}
Copier après la connexion

sortie :

Player is in StartÉtat
Start État
Player is in EndÉtat
End État
Copier après la connexion

remarque : le code ci-dessus suit les principes solides des FAI, LSP, SRP et 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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal