Sobes.tech
Middle — Middle+

State deseniminin iç uygulamasını ve nesnenin durumunu nasıl yönettiğini açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Durum Deseni, bir nesnenin iç duruma bağlı olarak davranışını değiştirmesine olanak tanır ve çalışma sırasında durumu sınıfını değiştirir.

İç uygulama genellikle aşağıdaki ilkeler üzerine kuruludur:

  • Bir bağlam (Context) vardır ve bu, mevcut durumu (State) referansını içerir.
  • State arayüzü, farklı durumları uygulayan bir dizi metod tanımlar.
  • Her somut durum, bu arayüzü uygular ve bu durum için davranışı tanımlar.
  • Bağlam, metod çağrılarını mevcut duruma devreder.
  • Gerekirse, durum kendini değiştirebilir ve bağlamdaki referansı başka bir duruma günceller.

Swift (iOS) örneği:

protocol State {
    func handle(context: Context)
}

class Context {
    private var state: State

    init(state: State) {
        self.state = state
    }

    func request() {
        state.handle(context: self)
    }

    func changeState(to newState: State) {
        self.state = newState
    }
}

class ConcreteStateA: State {
    func handle(context: Context) {
        print("Durum A isteği işliyor")
        context.changeState(to: ConcreteStateB())
    }
}

class ConcreteStateB: State {
    func handle(context: Context) {
        print("Durum B isteği işliyor")
        context.changeState(to: ConcreteStateA())
    }
}

// Kullanım:
let context = Context(state: ConcreteStateA())
context.request() // Durum A isteği işliyor
context.request() // Durum B isteği işliyor

Bu şekilde, nesne iç durumu değiştirerek davranışını dinamik olarak değiştirebilir.