«design-patterns» etiketlenmiş sorular

Tasarım deseni, yazılım tasarımında sık karşılaşılan bir sorunun genel yeniden kullanılabilir çözümüdür.

5
Strateji modeli ve bağımlılık enjeksiyonunu kullanarak kalıtımın yerini tamamen alabilir miyiz?
Örneğin: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Duck sınıfı tüm davranışları (soyut) içerdiğinden, MallardDuck(genişleten Duck) yeni bir sınıf oluşturmak gerekli görünmemektedir. Referans: İlk Baş Tasarım Deseni, Bölüm 1.

4
bir işlevi kötü uygulama olarak adlandırmanın yolu nedir?
Takip koduna sahibim: public void moveCameraTo(Location location){ moveCameraTo(location.getLatitude(), location.getLongitude()); } public void moveCameraTo(double latitude, double longitude){ LatLng latLng = new LatLng(latitude, longitude); moveCameraTo(latLng); } public void moveCameraTo(LatLng latLng){ GoogleMap googleMap = getGoogleMap(); cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, INITIAL_MAP_ZOOM_LEVEL); googleMap.moveCamera(cameraUpdate); } Bu şekilde LatLng, örneğin başka bir sınıfta neyin olduğunu bilmenin sorumluluğunu ortadan …

6
Dependency Injection için en iyi tanım nedir?
Birisi bana her ulaştığında ve Bağımlılık Enjeksiyonunu kavramsal bir şekilde tanımlamamı ve yazılım tasarımında DI'yi kullanmanın gerçek artılarını ve eksilerini açıklamamı istediğinde. İD kavramlarını açıklamakta zorlandığımı itiraf ediyorum. Onlara her zaman tek sorumluluk ilkesi, miras kompozisyonu vb. Hakkında bilgi vermem gerekiyor. Herkes geliştiriciler için DI tanımlamak için en iyi yolu …

4
“Erken soyutlama” nedir?
Cümlenin etrafına atıldığını duydum ve bana argümanlar tamamen çılgınca geliyor (burada samanlık çekiyorsam özür dilerim, Niyetim değil), genellikle şu satırlarda bir şeyler gider: Genel davanın ne olduğunu bilmeden soyutlama yapmak istemezsiniz, aksi takdirde (1) soyutlamalarınıza ait olmayan şeyleri koyuyor veya (2) önemli şeyleri atlıyor olabilirsiniz. (1) Bana göre bu programcı …

2
Uyarı Sistem Mimarisi
Çeşitli programlardan gelen uyarı mesajlarını işleyen ve bu uyarıları e-posta yoluyla tüketicilere indirgeyen bir sistem oluşturmak istiyorum. Tüm bunlar tek bir dahili ağ üzerinden sağlanacaktır. Bence temel mimarinin şöyle görünmesini istiyorum: Şu anda sahip olduğum temel endişe benim "API-çeşit" ne olacak "Message Handler" bit. Bu sistemin tüm bileşenlerinin veritabanına tüm …

4
Bir derleyici bir tür hatadan tam olarak nasıl kurtarılır?
Derleyiciler: İlkeler, Teknikler ve Araçlar (2. Baskı) (aka "Ejderha Kitabı") başlıklı 4.1.4, bölüm 4'teki birkaç makaleyi, makaleyi okudum . Ancak, birkaç modern derleyiciyi denedikten sonra, semantik hatalardan ve sözdizimsel hatalardan da kurtulduklarını gördüm . Sözdizimsel olarak ilgili hatalardan kurtarma derleyicilerin arkasındaki algoritmaları ve teknikleri oldukça iyi anlıyorum, ancak bir derleyicinin …

6
Eşit derecede optimal olmayan tasarımlarla sonsuz bir şekilde tekrarlamayı nasıl önlersiniz?
Muhtemelen birçokları gibi, genellikle kendimi tasarım problemleri ile baş ağrısına koşarken buluyorum, örneğin, sezgisel olarak problemlere uygun görünen ve istenen faydaları olan bazı tasarım desenleri / yaklaşımları var. Çoğunlukla patern / yaklaşımın, bir çeşit çalışma olmadan uygulanmasını zorlaştıran ve sonrasında paternin / yaklaşımın faydasını reddeden bazı uyarılar vardır. Pek çok …

5
LSP'yi ihlal etmek hiç uygun mu?
Bu soruyu takip ediyorum , ama odağımı koddan ilkeye geçiriyorum. Liskov ikame ilkesini (LSP) anladığımdan, temel sınıfımda ne olursa olsun, alt sınıfımda uygulanmaları gerekir ve bu sayfaya göre , temel sınıftaki bir yöntemi geçersiz kılarsanız ve hiçbir şey yapmazsa veya istisna, prensibi ihlal ediyorsunuz. Şimdi, sorunum şu şekilde özetlenebilir: Bir …

5
Benzer özellikler için farklı desenler kullanma
Herhangi bir yazılım projesinde olduğu gibi gelecekte başka biri tarafından alınabilecek bir projedeki tek geliştiriciyim. Diyelim ki X özelliğini A özelliğini uygulamak için kullandım. Özelliği geliştirip bitirdikten sonra, yeni öğrendiğim Y desenini kullanarak aynı özelliği uygulayabileceğimin farkındayım. Ancak A özelliği iyi çalışıyor ve X'ten Y'ye yeniden düzenleme zaman alıcı ve …

4
Java: Ayarlayıcıların sırasının önemli olmadığı bir adım oluşturucu nasıl uygulanır?
Düzenleme: Bu sorunun teorik bir sorunu açıkladığını belirtmek isterim ve zorunlu parametreler için yapıcı bağımsız değişkenlerini kullanabilir veya API yanlış kullanılırsa bir çalışma zamanı özel durumu atabilirim. Ancak, ben bir çözüm için arıyorum değil yapıcı argümanları veya çalışma zamanı denetimini gerektirir. Bunun Cargibi bir arayüzünüz olduğunu düşünün : public interface …

3
Gevşek Birleştirilmiş Kod İçin Arabirimleri Kullanma
Arka fon Belirli bir donanım aygıtının kullanımına bağlı bir projem var, ancak bu donanım aygıtını yapmam gereken şeyi yaptığı sürece kimin yaptığı önemli değil. Bununla birlikte, aynı şeyi yapması gereken iki cihazın bile aynı üretici tarafından yapılmadığında farklılıkları olacaktır. Bu yüzden uygulamayı ilgili marka / modelden ayırmak için bir arayüz …


3
Çok sayıda argümana sahip yapıcılardan kaçınma
Bu yüzden farklı sınıflardan nesneler yaratan bir fabrikam var. Olası sınıfların tümü soyut bir atadan türetilir. Fabrikada bir yapılandırma dosyası (JSON sözdizimi) vardır ve kullanıcının yapılandırmasına bağlı olarak hangi sınıfın oluşturulacağına karar verilir. Bunu başarmak için, fabrika JSON ayrıştırma işlemi için boost :: property_tree kullanır. Ptree'de yürür ve hangi somut …

3
Çoktan çoğa derin ilişkileri yönetmek için bir tasarım modeli var mı?
Birkaç uygulama üzerinde çalışırken karşılaştığım bu veri modelini tanımlamakta sorun yaşıyorum. Bu oluşmaktadır: Birçok nesnenin kendisinden oluşan bir nesne türü Her nesnenin ilk nesnenin 'çokuna' sahip olduğu ikinci bir nesne türü Ve birinci nesnenin alt nesnelerinin her biri, ikinci nesne türüyle her ilişkilendirme için değiştirilebilir. Basit bir örnek şunlar olabilir: …

4
Bir sınıfın karmaşıklığını azaltmak
Bazı cevaplara baktım ve Google'da arama yaptım, ancak yararlı bir şey bulamadım (yani, garip yan etkileri olmaz). Benim sorunum, soyut olarak, bir nesnem var ve üzerinde uzun bir işlem dizisi yapmam gerekiyor ; Bunu bir araba yapımı gibi bir çeşit montaj hattı olarak düşünüyorum. Bu nesnelere Yöntem Nesneleri deneceğine inanıyorum …

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.