ben şöyle bir tasarım uygulamak için çalışıyorum:iPhone Objective-C foreach tasarım
Touch
sınıfı: bir arayüz olarak eylemlerini çeşitli sınıflar ondan devralan:
MoveTouch
sınıf
JumpTouch
sınıf
InterfaceTouch
sınıf
Ardından, Touch
nesnelerinin bir listesini almak istiyorum. Daha sonra, bu büyük listeden SADECE MoveTouch
nesnesini SADECE (diğerlerini değil) ve daha sonra tüm JumpTouch
nesnelerini ayırmak istiyorum. Ne yazık ki, for (MoveTouch* t in touches)
istediğimi yapmıyor; tüm listeden her şey harekete geçer.
... Yani [t update] çağrısı gibi bir şey yaparsınız ve her bir öğe bir güncelleme döngüsünde ne yapacağına karar verir. Ama bu evrensel değil. Bir sınıfa göndermek istediğiniz bir mesajınız olduğunda, başka bir zaman değil, birçok kez vardır. –
evrensel değil, ama bence, koku alma eğilimindedir. Özellikle de sınıfları kendiniz de tasarladığınızı belirttiğinizde. –
Aslında bununla polimorfizm yapmıyorum. Temel isteğim farklı dokunuşları ayırmak için bir yoldu. Dokunma türü (Hareket, Atlama, Arayüz, vb.), "TouchesBegan" içinde gerçekleşen yaratılışının hemen üzerine karar verilebilir. O andan itibaren, dokunduğunuzda ya da dokunduğunuzda hareket ettiğinizde, ne olacağının işlevselliğini ayırmak çok daha kolay olabilir. Sanırım belki miras, bunun için biraz fantezi mi? Belki sadece basit bir enum çalışır? –