Sobes.tech
Junior — Middle

Sinifin cari vəziyyəti və ya iş rejiminə görə sinif daxilində müxtəlif metod funksiyalarının yerinə yetirilməsini necə həyata keçirmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

İstənilən vəziyyət və ya iş rejiminə görə bir sinifin metodlarının müxtəlif davranış variantlarını həyata keçirmək üçün tez-tez "Vəziyyət" (State) nümunəsi istifadə olunur.

Fikir odur ki, sinifin daxili vəziyyəti var və bu, ümumi interfeysi həyata keçirən ayrı-ayrı obyektlər tərəfindən təmsil olunur. Metod çağırışı cari vəziyyətə yönəldilir və o, konkret davranışı müəyyən edir.

Java nümunəsi:

interface State {
    void handle();
}

class StateA implements State {
    public void handle() {
        System.out.println("Vəziyyət A üçün davranış");
    }
}

class StateB implements State {
    public void handle() {
        System.out.println("Vəziyyət B üçün davranış");
    }
}

class Context {
    private State state;

    public void setState(State state) {
        this.state = state;
    }

    public void request() {
        state.handle();
    }
}

// İstifadə
Context context = new Context();
context.setState(new StateA());
context.request(); // Vəziyyət A üçün davranış
context.setState(new StateB());
context.request(); // Vəziyyət B üçün davranış

Bu yolla, metodların davranışını sinif daxilində çoxsaylı şərt operatorları istifadə etmədən dəyişdirmək mümkündür.