Sobes.tech
Junior — Middle

State naqshining konseptini va u obyektga yo'naltirilgan dasturlashda qanday ishlatilishini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

State naqshoni, ob'ektning ichki holatiga bog'liq holda uning xulq-atvorini o'zgartirish imkonini beradi va bu holat sinfini bajarilish vaqtida o'zgartiradi. Bu katta shart operatorlarini oldini olishga yordam beradi va kodni yanada moslashuvchan va kengaytiriladigan qiladi.

Ob'ektga yo'naltirilgan dasturlashda, State naqshini amalga oshirish uchun asosiy holat interfeysi va bir nechta aniq holat sinflari yaratiladi. Kontekst (asosiy ob'ekt) hozirgi holatga havolani saqlaydi va unga chaqiruvlarni delegat qiladi.

Java misoli:

interface State {
    void handle(Context context);
}

class ConcreteStateA implements State {
    public void handle(Context context) {
        System.out.println("Holat A so'rovni boshqaradi.");
        context.setState(new ConcreteStateB());
    }
}

class ConcreteStateB implements State {
    public void handle(Context context) {
        System.out.println("Holat B so'rovni boshqaradi.");
        context.setState(new ConcreteStateA());
    }
}

class Context {
    private State state;

    public Context(State state) {
        this.state = state;
    }

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

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

// Foydalanish:
Context context = new Context(new ConcreteStateA());
context.request(); // Holat A so'rovni boshqaradi.
context.request(); // Holat B so'rovni boshqaradi.

Shu tarzda, ob'ektning xulq-atvori holat o'zgarishi bilan dinamik ravishda o'zgaradi.