SORU
2 ŞUBAT 2009, PAZARTESİ


Büyük Geçiş açıklamaları: Kötü OOP?

Her zaman büyük geçiş açıklamaları kötü OOP tasarım belirtisi olduğunu düşünüyor oldum. Geçmişte, bu konuyu tartışmak makaleleri okudum ve altnerative OOP tabanlı yaklaşımlar, genellikle kasanın işlemek için doğru nesne oluşturmak için polimorfizmi göre yapmışlardır.

Ben şimdi böyle bir durumda olan bir monsterous switch deyimi dayalı bir akış verileri TCP soket protokol oluşur temelde yeni satır komut sonlandırıldı ve ardından satır veri, ardından bir son yoktur. Bu komut bir şey bu canavar switch deyimi azaltmak için bir yol daha yönetilebilir bulmak istiyorum yani 100 farklı komutlar olabilir.

Hatırladığım çözümler bulmak için biraz googling yaptım, ama ne yazık ki, Google sorguları birçok türde için alakasız sonuçlar bir araziden bu gün haline gelmiştir.

Sorun bu tür için herhangi bir desen var mı? Olası uygulamaları üzerinde herhangi bir öneriniz var mı?

Bir sözlük arama, örneğini oluşturmak için nesne türü için komut metin eşleşen kullanılması olduğunu sanıyordum. Bu sadece yeni bir nesne oluşturmak ve herhangi bir yeni komutları için tabloda yeni komut/türü ekleme güzel bir avantajı vardır.

Ancak, bu da bir tür patlama sorunu var. Ben şimdi 100 yeni sınıflar gerek, arayüz veri modeli temiz bir şekilde bir yolunu bulmak zorundayım artı. "Tek gerçek anahtarı açıklamada" gerçekten gitmek için yolu?

Düşüncelerinizi, görüş ya da yorumlarını takdir ediyorum.

CEVAP
2 ŞUBAT 2009, PAZARTESİ


Command Pattern bazı parası alabilirsiniz.

İçin OOP, sen-ebilmek muktedir çöküşü birkaç benzer komutlar her birine tek bir sınıf, eğer davranış varyasyonları yeterince küçük, önlemek için tam bir sınıf patlama (Evet, duyabiliyorum OOP uzmanları feryat bu konuda zaten). Sistem zaten OOP ve 100 komutların her birini gerçekten benzersiz ise, o zaman sadece onları benzersiz sınıflar ve miras avantajı ortak şeyler pekiştirmek için.

Eğer sistem değil OOP, o zaman ben sevmezdim Ekle OOP sadece bu... kolayca kullanın Komut Deseni ile basit bir sözlük arama ve işlev işaretçileri, hatta dinamik olarak oluşturulan işlev çağrıları temel komut adı, bağlı dil. Sonra benzer komutları topluluğu temsil eden kütüphaneler içine mantıksal olarak ilişkili fonksiyonları yönetilebilir ayırma ulaşmak için gruplayabilirsiniz. Eğer bu tür bir uygulama... ben her zaman "" tarzı, MVC yaklaşımı için URL kullanma. dayalı memuru olarak düşünmek için iyi bir dönem varsa bilmiyorum

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ADDVOiCE

    ADDVOiCE

    28 Mayıs 2009
  • kimaliz

    kimaliz

    18 Temmuz 2006
  • SalGames2016

    SalGames2016

    17 Kasım 2012