Tasarım Örüntüsü

State

Behavioral Patterns bir örneği olan State örüntüsü, nesnenizin iç durumunu(state)’unda yapması gereken davranışları birbirinden soyutlamak için oluşturulmuştur.

Onur Dayıbaşı
Design Patterns

--

Bilgi Notu: Diğer tüm Tasarım Örüntüleri yazıma bu linkten ulaşabilirsiniz.

Örnek Kullanım

Oyun geliştirmede çok kullanılan bir örüntüdür. Oyundaki nesnelerin hareketlerini belli durumlara göre gerçekleştirmeniz gerekir. Nesnenin ilgili durumda yapacağı hareketleri ve davranışları bu State sınıfları belirler

Örneğin Street Fighter oyununa bakalım. Oyunu kodlarken Ryu’nun haraket durumlarını kodlamamız gerekir.

  • Idle (Sallanma)
  • Walking
  • Jump
  • Forward Jump
  • Crouch
  • Blocking
  • Left Punch
  • M/H Punch
  • Forward Left Punch
  • vb….

Elimizde State arayüzünden türeyen nesneler olması gerekir.

StateIdle, StateWaiting, StateJump gibi.. her bisinin handle() metodu içerisinde ilgili sprite run edilerek nesnenin bir durumdan → diğer duruma geçmesi sağlanır.

Yapısı

Context bu durumlar arasındaki geçişten sorumludur. Mesela Jump durumundan sonra blocking durumu olmaz, arasında illa Idle durumuna geçmek gerekir şeklinde kurallar var ise bu geçişi Context sınıfı gerçekleştirir.

Context yapılan isteklerin arkasında ya Oyuncu ya da Yapay zeka vardır. Buna göre Context kendisinden istenen davranışı yerine getirir.

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--