Maison  >  Article  >  Java  >  État

État

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-09-22 22:15:32530parcourir

É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);
}

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";
    } 
}

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());
    }
}

sortie :

Player is in StartÉtat
Start État
Player is in EndÉtat
End État

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!

Déclaration:
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