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.