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.