Bir kuruluşun durumu enter (), execute () ve exit () işlevlerini tam olarak kullanmadığında tasarım hatası var mı?


9

Mat Buckland'ın Programlama Oyunu AI'yı Örnek olarak takip ediyorum ve her zaman bir varlığın durumunda enter (), execute () ve exit () için kullanmıyorum. Örneğin, bir RPG'de, bir silah donanımlı bir duruma sahip olabilir ve bu durum için bir oyuncunun yetenek değiştiricisini eklemek veya çıkarmak için enter () ve exit () kullanabilirim, ancak gerçekten yürütme ihtiyacı yoktur ( ). Bu benim motorumda bir tasarım hatası mı yoksa bu yaklaşımın bir eksikliği mi?

Yanıtlar:


8

Kitabı okumadıktan sonra, bu çağrılar bir devlet makinesi için normal giriş noktaları gibi geliyor. Çağrıları anlamak için ne yaptıklarına bakalım.

enter () - durum etkinleştirildiğinde yürütülür.

() yürütmek - infaz ederken devlet devreye girer.

exit () - durum devre dışı bırakıldığında yürütülür.

Bunlar her türlü durum makinesine uygundur. Bazı makineler yalnızca 'yürütme' çağrılarına ihtiyaç duyarken, diğerleri 'giriş' ve 'çıkış' a ihtiyaç duyarken, diğerleri de bu üçünün hepsine ihtiyaç duyar.

Örnek 1 : Makineli tüfek tetiği.

  • Yürüt: Kurşunları belirlenen hızda ateşle.

Örnek 2 : Kuvvet köprüsü

  • Enter: köprüyü görün
  • Çıkış: köprüyü yok et

Örnek 3 : Kişisel güç zırhı.

  • Enter: oyuncuya ekstra koruma sağlayın
  • Yürüt: pilleri boşaltın
  • Çıkış: ekstra korumayı kaldır

8

Mutlaka herhangi bir kusurun işareti değildir. Her varlık veya eyalet, mevcut her yöntem için bir kullanıma sahip olmayacaktır. Sadece execute () yöntemini boş bırakmak IMO olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.