«object-oriented-design» etiketlenmiş sorular

Nesne yönelimli tasarım, bir yazılım problemini çözmek için etkileşen nesneler sistemini planlama sürecidir.

16
Yazılım karmaşıklığını yönetmek için gerçekten OO dillerine ihtiyacımız var mı?
Bu teknik olmayan, yumuşak bir soru olacak ve bunun doğru platform olup olmadığından emin değilim. Ama ben yeni bir CS öğrencisiyim, umarım buna katlanabilirsiniz. İlk dönemde kapsülleme, veri gizleme, modülerlik, kalıtım vb. OOP kavramlarını Java ve UML üzerinden tanıttık. (Java benim ilk programlama dilimdir) Anladığım kadarıyla OOP, yazılım karmaşıklığını yönetmenin …

15
Davranışı belirlemek için bir boolean parametresi kullanmak yanlış mı?
Zaman zaman "yanlış" hisseden "bir uygulama gördüm, ama yanlış olanı açıkça ifade edemiyorum. Ya da belki de sadece önyargım. İşte gidiyor: Bir geliştirici, bir boole yöntemini parametrelerinden biri olarak tanımlar ve bu yöntem başkalarını çağırır ve böyle devam eder ve nihayetinde boole yalnızca belirli bir işlem yapılıp yapılmayacağını belirlemek için …

14
Dörtlü Çete “Desen Uzayı” nı iyice araştırdı mı?
Dörtlü Çete (GoF) tasarım kalıplarını ilk öğrendiğimden beri , en az 10 yıl önce, bu 23 kalıptan sadece Desen Alanı olarak adlandırmayı sevdiğimden daha büyük bir şeyin küçük bir örneği olması gerektiği izlenimini edindim . Bu varsayımsal Desen Alanı , yaygın nesne yönelimli yazılım tasarımı sorunları için önerilen tüm çözümlerden …

17
Dönüş değerinin bulunmadığı fonksiyon / yöntemlerden NULL değeri veya boş değerler döndürmek daha mı iyidir?
Burada bir öneri arıyorum. Dönüş değeri olmadığında veya belirlenemediğinde, bir yöntemden NULL veya boş bir değer döndürmenin daha iyi olup olmadığıyla mücadele ediyorum. Aşağıdaki iki yöntemi örnek olarak alın: string ReverseString(string stringToReverse) // takes a string and reverses it. Person FindPerson(int personID) // finds a Person with a matching personID. …

10
Bu Liskov Değişim İlkesinin ihlali midir?
Diyelim ki bir Görev varlıkları listesi ve bir ProjectTaskalt tür var. Görevler, ProjectTasksBaşlama statüsüne sahip olduklarında kapatılamaz olmaları haricinde, herhangi bir zamanda kapatılabilir. Kullanıcı Arabirimi, bir başlatmayı kapatma seçeneğinin ProjectTaskhiçbir zaman kullanılabilir olmadığından emin olmalıdır , ancak alanda bazı güvenlik önlemleri vardır: public class Task { public Status Status { …

6
“İş mantığı” gerçekten nedir?
PHP ile başladığım 2009'dan beri web geliştirme ile çalışıyorum. ASP.NET'e taşındığımda DDD ve OOAD hakkında çok şey duydum, burada "iş mantığına" ve "iş kurallarına" odaklanıldı. Mesele şu ki, şu ana kadar geliştirdiğim tüm uygulamalar CRUD operasyonları ile ilgiliydi ve bunları pratikte hiç görmedim. Bu şeylerin gerçekte pratikte neler olabileceğini hayal …

13
Temiz kod uygulamalarını izleyerek daha fazla kodun yazılmasını nasıl haklı çıkarırsınız?
Moderatör notu Bu sorunun zaten kendisine gönderilen on yedi cevabı vardı . Yeni bir cevap göndermeden önce, lütfen mevcut cevapları okuyun ve bakış açınızın yeterince kapsamadığından emin olun. Robert Martin'in "Temiz Kod" kitabında tavsiye edilen bazı uygulamaları, özellikle birlikte çalıştığım yazılım türlerini ve benim için anlamlı olanları (doma olarak takip …

12
SetWidth ve SetHeight yöntemlerini geçersiz kılarsak, Kare'yi Dikdörtgen'den devralmak neden sorunlu olsun?
Bir Kare bir Dikdörtgen türü ise, neden bir Kare Dikdörtgenden miras alamaz? Ya da neden kötü bir tasarım? İnsanların söylediklerini duydum: Kare'yi Dikdörtgen'den türetmişseniz, bir dikdörtgen beklediğiniz her yerde bir Kare kullanılabilir olmalıdır Burada problem nedir? Ve neden bir dikdörtgen beklediğiniz her yerde Kare kullanılabilir? Yalnızca Square nesnesini oluşturursak ve …

9
Neden bağımlılık enjeksiyonunu kullanmalıyım?
Bağımlılık enjeksiyonunu neden kullanmam gerektiğine dair kaynakları aramakta zorlanıyorum . Gördüğüm kaynakların çoğu bir nesnenin bir örneğini bir nesnenin başka bir örneğine geçtiğini açıklıyor, ama neden? Bu sadece daha temiz mimari için mi / kod mu yoksa performansı bir bütün olarak etkiler mi? Neden aşağıdakileri yapmalıyım? class Profile { public …

4
Zengin Etki Alanı Modelleri - davranış tam olarak nasıl uyuyor?
Rich'e karşı Anemik etki alanı modelleri tartışmasında, internet felsefi tavsiyelerle doludur, ancak otoriter örnekler konusunda kısa bilgi. Bu sorunun amacı, kesin Etki Alanına Dayalı Tasarım modellerinin kesin kurallarını ve somut örneklerini bulmaktır. (İdeal olarak C # 'da.) Gerçek dünyadaki bir örnek için, DDD'nin bu uygulaması yanlış görünmektedir: Aşağıdaki WorkItem etki …

11
Niçin tüm nesnelerin temeli C ++ 'ta önerilmiyor?
Stroustrup, "Derhal tüm sınıflarınız için benzersiz bir üs icat etme (Nesne sınıfı). Genellikle, çoğu / çoğu sınıf için onsuz daha iyisini yapabilirsiniz." Diyor. (C ++ Programlama Dili Dördüncü Basım, Bölüm 1.3.4) Neden her şey için bir temel sınıf genellikle kötü bir fikirdir ve ne zaman bir tane yaratmanın anlamı vardır?

10
Önerilen tasarımım genellikle meslektaşımınkinden daha kötü - nasıl daha iyi olabilirim? [kapalı]
Birkaç yıldır programlama yapıyorum ve genellikle sorunları çözmek ve küçük-orta dereceli komut dosyaları oluşturmak konusunda iyiyim, ancak genellikle büyük ölçekli programları nesne yönelimli olarak tasarlama konusunda iyi değilim. Birkaç soru Son zamanlarda, benimle aynı yıllara dayanan bir meslektaşım ve ben bir problem üzerinde çalışıyorduk. Ondan daha uzun bir problem üzerinde …

12
Hata atıp atmamamız gerektiğini belirten bir bayrak olması
Kısa süre önce, bazı eski geliştiricilerin bulunduğu bir yerde çalışmaya başladım (yaklaşık 50+ yaşında). Sistemin çökemediği havacılık ile ilgili kritik uygulamalar üzerinde çalıştılar. Sonuç olarak, eski programcı bu şekilde kodlama eğilimindedir. Bir istisna atılıp atılmayacağını göstermek için nesnelere bir boolean yerleştirme eğilimindedir. Örnek public class AreaCalculator { AreaCalculator(bool shouldThrowExceptions) { …

10
Ne demek, “Kullanıcı Yönetici olup olmadığına karar vermemelidir. Ayrıcalıklar veya Güvenlik sistemi gerekir. ”
Soruda kullanılan örnek , kullanıcının yönetici olup olmadığını belirlemek için en iyi şekilde dokunan bir işleve çıplak veri iletmektedir. Yaygın cevaplardan biri şuydu: user.isAdmin() Bu, birkaç kez tekrarlanan ve birçok kez oylanan bir yorum yapılmasına yol açtı: Bir kullanıcı bir Yönetici olup olmadığına karar vermemelidir. Ayrıcalıklar veya Güvenlik sistemi gerekir. …

9
Sadece tek (genel) bir metoda sahip sınıflar bir problem midir?
Şu anda video izleme görüntülerinde sıkıştırma ve indeksleme yapan bir yazılım projesi üzerinde çalışıyorum. Sıkıştırma, arka plan ve ön plan nesnelerini bölerek, ardından arka planı statik bir görüntü olarak ve ön planı bir hareketli grafik olarak kaydederek çalışır. Son zamanlarda, proje için tasarladığım bazı dersleri incelemeye başladım. Sadece tek bir …

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.