Junior — Middle
State nümunəsinin konseptini və obyekt yönümlü proqramlaşdırmada necə istifadə olunduğunu izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
State nümunəsi, daxili vəziyyətə əsasən obyektin davranışını dəyişməsinə imkan verir və bu, vəziyyət sinfini işləmə zamanı dəyişdirir. Bu, böyük şərt operatorlarının qarşısını almağa kömək edir və kodu daha çevik və genişləndirilə bilən edir.
Obyekt yönümlü proqramlaşdırmada, State nümunəsini həyata keçirmək üçün əsas vəziyyət interfeysi və bir neçə konkret vəziyyət sinfi yaradılır. Kontekst (əsas obyekt) cari vəziyyətə istinad edir və çağırışları ona yönəldir.
Java nümunəsi:
interface State {
void handle(Context context);
}
class ConcreteStateA implements State {
public void handle(Context context) {
System.out.println("Vəziyyət A sorğunu idarə edir.");
context.setState(new ConcreteStateB());
}
}
class ConcreteStateB implements State {
public void handle(Context context) {
System.out.println("Vəziyyət B sorğunu idarə edir.");
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);
}
}
// İstifadə:
Context context = new Context(new ConcreteStateA());
context.request(); // Vəziyyət A sorğunu idarə edir.
context.request(); // Vəziyyət B sorğunu idarə edir.
Beləliklə, obyektin davranışı vəziyyət dəyişdikcə dinamik olaraq dəyişir.