Sobes.tech
Junior — Middle

Sinf funktsiyalarini bajarishni qanday amalga oshirish mumkin, sinfning hozirgi holati yoki ish rejimiga qarab?

sobes.tech AI

AIdan javob

Turli holat yoki ish rejimi bo'yicha sinf metodlarining turli xil xulq-atvorlarini amalga oshirish uchun ko'pincha "Holat" (State) dizayn shabloni qo'llaniladi.

G'oya shundaki, sinf ichki holatga ega bo'lib, u umumiy interfeysni amalga oshiradigan alohida obyektlar bilan ifodalanadi. Metod chaqiruvi joriy holatga topshiriladi, u esa aniq xulq-atvorni belgilaydi.

Java'da misol:

interface State {
    void handle();
}

class StateA implements State {
    public void handle() {
        System.out.println("Holat A uchun xulq-atvor");
    }
}

class StateB implements State {
    public void handle() {
        System.out.println("Holat B uchun xulq-atvor");
    }
}

class Context {
    private State state;

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

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

// Foydalanish
Context context = new Context();
context.setState(new StateA());
context.request(); // Holat A uchun xulq-atvor
context.setState(new StateB());
context.request(); // Holat B uchun xulq-atvor

Shu tarzda, sinf ichidagi ko'p shart operatorlari bo'lmasdan, metodlarning xulq-atvorini o'zgartirish mumkin.