In Head First Design Patterns o öğretir strateji deseni Duck farklı alt sınıfları zamanında belirli bir davranışı atanabilecek bir ördek örneği kullanarak. Anladığım kadarıyla, strateji modelinin amacı, çalışma zamanında tek bir nesnenin davranışını değiştirmek , ancak çeşitli Duck türlerinin davranışlarını değiştirmek için Duck'ın mirasını kullanıyorlar.
Uygunluk?
Ördek'in bağlamsal mirası, strateji modeliyle alakasız mı yoksa değişen Duck türleri mi ve davranışlarını değiştirmek de strateji modelini kullanmak için iyi bir neden mi? Her ikisini de değiştirmeniz gereken durumlar strateji modelini kullanmak için iyi bir neden mi oluşturuyor? Bunu neden strateji örneği örneği olarak dahil ettiler?
Daha Basit Bir Örnek
Bu örneği sadece bir Duck sınıfına (türetilmiş sınıf olmadan) sahip olarak basitleştirebilir miyim? Daha sonra bir ördek nesnesini uygularken, kendi nesne türüne bağlı olmayan belirli koşullara bağlı olarak farklı davranışlar atanabilir. Örneğin: FlyBehavior hava durumuna göre değişir veya QuackBehavior günün saatine veya bir ördeğin ne kadar aç olduğuna bağlı olarak değişir. Bunun kitaptaki sorundan farklı bir sorunu çözeceğini anlıyorum, ancak aradığım şey, geri dönecek ilgili bir strateji örneği örneği.
Yukarıdaki örneğim de strateji modelini oluşturur mu?
Düzenle:
Bağlam kalıtımı olmayan sadece strateji kalıplarına daha sıkı bağlı olan 2 daha basit strateji modeli örneği bulmayı başardım : Hunter.java ve solver.py .