«design» etiketlenmiş sorular

Yazılım tasarımı ile problem çözme ve çözüm planlaması hakkında sorular.

5
Kullanıcı arayüzündeki ilerlemeyi bildirmek için en iyi strateji - geri arama nasıl gerçekleşmelidir?
Bazen kullanıcı yürütülmesi biraz zaman alan genişletilmiş bir teknik işlem başlatır. Bu durumlarda, şu anda hangi görevin yürütüldüğüne ilişkin bilgilerle birlikte, bir tür ilerleme çubuğu görüntülemek genellikle iyidir. Kullanıcı arayüzünün ve mantık katmanlarının birbirine bağlanmasını önlemek için iletişimin bir tür proxy üzerinden gerçekleşmesi genellikle en iyisidir. Yani, arka uç kendi …

2
Yalnızca bir örneği olan Python sınıfları: Ne zaman (tek) sınıf örneği oluşturulur ve bunun yerine sınıfla ne zaman çalışır?
Yalnızca bir kez başlatılacak olan bir Python sınıfı verildiğinde, yani sınıfın yalnızca bir nesnesi olacaktır. Hangi durumlarda doğrudan sınıfla çalışmak yerine tek bir sınıf örneği oluşturmanın mantıklı olduğunu merak ediyordum. Benzer bir soru var , ama farklı bir odağı var: küresel değişkenleri ve fonksiyonları bir sınıfa ayırmak ve Python'a özgü …


5
Bir iç veri yapısını her zaman tamamen kapsüllemeli miyim?
Lütfen bu sınıfı düşünün: class ClassA{ private Thing[] things; // stores data // stuff omitted public Thing[] getThings(){ return things; } } Bu sınıf, verileri depolamak için kullandığı diziyi ilgili tüm istemci kodlarına maruz bırakır. Bunu üzerinde çalıştığım bir uygulamada yaptım. Ben s ChordProgressionbir dizi saklayan bir sınıf vardı Chord(ve …

6
Hangi tasarımlar uygun tasarımla kolaylaştırılamayacak kadar büyük?
Bu oldukça belirsiz bir sorudur, ancak uygun tasarım hakkında okurken hiç tatmin edici bir şekilde cevaplanmadığını hissettiğim bir şeydir. Genellikle, Nesne Odaklı programlama, soyutlama, çarpanlara ayırma, vb., Tasarımın kutsal kâsesi - ve her zaman söz konusu geliştirme tekniklerini kullandığınızı iddia etmelerinin nedeni - programınızı "değiştirmeyi kolaylaştıracaktır" , "sürdürülebilir", "esnek" veya …

4
Komut deseni tasarımı
Komut modelinin bu eski uygulamasına sahibim. Bu, tüm DIOperation uygulaması boyunca bir Bağlamdan geçmektir , ancak daha sonra, öğrenme ve öğrenme sürecinde (asla durmaz), bunun optimal olmadığını fark ettim. Ben de burada "ziyaret" gerçekten uygun olmadığını ve sadece karışık olduğunu düşünüyorum. Aslında benim kodumu yeniden düzenlemeyi düşünüyorum, çünkü bir Komut …

5
Soyut veya sanal yöntemler kullanmalı mıyım?
Temel sınıfın saf bir arabirim sınıfı olmasını ve soyut veya sanal yöntem sınıfı tanımını kullanarak daha iyi bir yaklaşım olan aşağıdaki 2 örneği kullanmanın istenmediğini varsayarsak? "Soyut" versiyonun avantajı, muhtemelen daha temiz görünmesi ve türetilmiş sınıfı umut verici bir uygulama yapmaya zorlamasıdır. "Sanal" sürümün avantajı, diğer modüller tarafından kolayca çekilebilmesi …
11 c#  design 

3
Görünüm modellerinde iş nesnelerini kullanma
Yeniden kullanılabilir iş nesneleri kullanırken, görünüm modelleri oluştururken en iyi uygulama nedir? BuilderGörünüm modellerimizi oluşturmak için çağırdığımız bir nesne kullanıyoruz . Her bir mantıksal görünüm birimi (siparişler, kullanıcılar vb.) İçin bir oluşturucu; burada her birim bir dizi farklı görünüm modeli içerebilir (siparişler özet, sipariş satırları vb. İçerir). Bir üretici, bir …


4
C ++ 'da “arayüz” terimi
Java, classve arasında net bir ayrım yapar interface. (C # da inanıyorum, ama onunla hiçbir deneyimim yok). Ancak C ++ yazarken, sınıf ve arabirim arasında dil tarafından zorlanan bir ayrım yoktur. Sonuç olarak ben her zaman Java çoklu kalıtım eksikliği için bir çözüm olarak gördüm. Böyle bir ayrım yapmak C …

5
Test Edilebilir Kod Yazma ve Spekülatif Genelliği Önleme
Bu sabah bazı blog mesajları okurken, ve tökezledi bu bir : Müşteri arabirimini uygulayan tek sınıf CustomerImpl ise, gerçekte polimorfizm ve ikame edilebilirliğiniz yoktur çünkü çalışma zamanında ikame edilecek hiçbir şey yoktur. Sahte genellik. Bir arayüz uygulamak karmaşıklık eklediğinden ve yalnızca tek bir uygulama varsa, gereksiz karmaşıklık kattığı iddia edilebilir. …

3
Scala ve LWJGL kullanarak basitleştirilmiş bir oyun için Fonksiyonel Programlama yaklaşımı
Java zorunlu bir programcısı olarak, Fonksiyonel Programlama tasarım ilkelerine (özellikle Referans Şeffaflığı) dayalı Space Invaders'ın basit bir versiyonunun nasıl oluşturulacağını anlamak istiyorum. Bununla birlikte, bir tasarımı her düşünmeye çalıştığımda, aşırı değişkenliğin, işlevsel programlama safları tarafından kapatılan aynı mutabilitenin tacizinde kayboluyorum. Fonksiyonel Programlamayı öğrenmek için, Scala'da LWJGL kullanarak çok basit bir …

6
Tek Sorumluluk İlkesi ile Mücadele
Bu örneği düşünün: Bir web sitem var. Kullanıcıların yayın yapmasına (herhangi bir şey olabilir) ve yayını tanımlayan etiketler eklemesine olanak tanır. Kodda, yazı ve etiketleri temsil eden iki sınıf var. Bu sınıflara Postve diyelim Tag. Postyayın oluşturma, yayınları silme, yayınları güncelleme, vb. ile Tagilgilenir. etiket oluşturma, etiketleri silme, etiketleri güncelleme …

8
Agile veya XP gibi evrimsel yöntemlerde bir tasarım çıkmazına ulaşırsanız ne yaparsınız?
Martin Fowler'in ünlü blog yazısı okurken Design Dead mi? Çevik Metodoloji ve Aşırı Programlama'da tasarımın yanı sıra programlamanın da evrimsel olduğu göz önüne alındığında, çarpıcı izlenimlerden biri, her şeyin yeniden düzenlenmesi gereken noktalar olduğu gerçeğidir. Bir programcı düzeyi iyi olduğunda ve tasarım sonuçlarını anladıklarında ve kritik hatalar yapmadığında, kod gelişmeye …
11 design  agile 

1
Çizim iş parçacığı etkileşimi
Bir UML (benzeri) gösterimde iş parçacığı etkileşimi (kalem ve kurşun kalem) çizmek istiyorum. UML'de ısrar etmiyorum, okuyucu için açık olan herhangi bir şey yapmalı. Dizi diyagramları ile başladım, ancak bunun bunu yapmanın en iyi yolu olduğunu düşünmüyorum. Her zaman, SSD fikrini kırmak gibi ekran dışından gelen "eylem başlatıcılar" olurdu. Her …

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.