«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.

4
Yazdığım her sınıf bir arayüze uymalı mıdır?
Typescript'te bir oyun yazıyorum ve bir nesnenin uygulanması yerine bir arabirime dayalı kod yazdığınız " arabirim tabanlı programlama " fikrine uymaya çalışacağım olmaya karar verdim . Çok sayıda arayüz ve bunları uygulayan sınıflar yazdım, sonra bir adım geri attım ve sınıfların uygulamayı asla değiştirmem gerekmeyecek kadar basit olduğunu fark ettim, …

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: …

1
Python'da bir istisnayı ne zaman alt sınıflamalıyım?
Kodumda bir istisna getirdiğim yaklaşık yedi yer var. Tüm bu istisnalar aynı şekilde ele alınır: günlük dosyasına bir hata yazdırın, yazılım durumunu varsayılana döndürün ve çıkın. Kod incelemesi sırasında çok değer verdiğim kıdemli mühendisim, tüm bu istisnaları alt sınıfta tutmam gerektiğini söyledi. Onun argümanı gelecekte istisnaları farklı ele almak isteyebiliriz …

3
Kod ve Karma Nesneleri Temizle ve Kıskançlık
Bu yüzden son zamanlarda benim kod bazı büyük refactorings yaptı. Yapmaya çalıştığım ana şeylerden biri, sınıflarımı veri nesnelerine ve çalışan nesnelere ayırmaktı. Bu, diğer şeylerin yanı sıra, Temiz Kod'un bu bölümünden ilham aldı : Melezler Bu karışıklık bazen yarı nesne ve yarı veri yapısı olan talihsiz hibrit veri yapılarına yol …

2
SRP'yi izlerken, varlıkların doğrulanması ve kaydedilmesi ile nasıl başa çıkmalıyım?
Ben okuyordum Temiz Kodunu son zamanlarda KATI hakkında ve çeşitli çevrimiçi makaleler ve ben hiçbir şey bilmiyorum gibi ne kadar fazla okumak, daha hissediyorum. Diyelim ki ASP.NET MVC 3 kullanarak bir web uygulaması inşa ediyorum. Diyelim ki böyle UsersControllerbir Createeylem ile bir var : public class UsersController : Controller { …

3
Uzun durum değişken listesine karşı uzun parametre listesi
Bir C ++ kitabında yazar, parametrelerin çoğunun bir sınıftaki durum değişkenlerine dönüştürülebildiği için artık uzun parametre listesiyle bir işleve ihtiyacımız olmadığını söylüyor. Öte yandan, işlevsel bir programlama kitabı durum değişkenlerinin kötü olduğunu, çünkü hataya eğilimli ve kodun paralelleştirilmesi zor olan yan etkilere neden olduğunu söylüyor. Şaşkınım. Kod, durum değişkenini işlev …

5
Gerçek dünya değerini temsil eden bir sabiti güncellemek Açık-Kapalı Prensibinin ihlali midir?
İşçilerin yıllık net gelirini hesaplayan bir sınıfım var. Vergi yüzdesini temsil eden bir sabiti vardır. Ancak bir gün vergi oranı değişti, bu yüzden kodu düzeltmem gerekiyor. Bu sabiti düzeltme eylemi, bir sınıfın modifikasyona kapatılması gerektiğini varsaydığı için Açık-Kapalı Prensibinin ihlal edildiğine işaret ediyor mu?



5
Çok fazla soyutlama kodu genişletmeyi zorlaştırıyor
Ne kod tabanı (ya da en azından onunla ilgili) çok fazla soyutlama olduğunu hissediyorum sorunları ile karşı karşıya. Kod tabanındaki çoğu yöntemin kod tabanındaki en yüksek üst A'yı alması gerekir, ancak bu üst öğenin B alt öğesi, bu yöntemlerin bazılarının mantığını etkileyen yeni bir özniteliğe sahiptir. Sorun, girişlerin A olarak …

4
Etki alanı merkezli karmaşık bir uygulamada temel CRUD işlemlerine DDD yaklaşımı
Şirketim web uygulamamızı sıfırdan yeniden yazıyor. Finans sektöründe karmaşık bir alana sahip büyük bir kurumsal düzeyde uygulamadır. Kalıcılık için ORM (Varlık çerçevesi) kullanıyoruz. Temel olarak, uygulamalarımızın yarısı kullanıcıdan ham veri toplama, depolama ve ardından gerçek alan mantığımızın çoğunu içeren uygulamanın diğer yarısı, bu orijinal verilerden, orijinalinden çok farklı olan alan …

1
İş mantığı ve Hizmet katmanı
Bu cevabı okudum: https://softwareengineering.stackexchange.com/a/234254/173318 lütfen anlayışımı düzeltin. İş kuralları , gerçek dünyada iş adımlarının listesini ifade eder (kod yok). İş Mantığı , iş kurallarını kodlara dönüştürme sürecini ve bu grup / tür kodlarını "İş mantığı" olarak adlandırılan süreci ifade eder. Hizmet katmanı ne için kullanılır? bu cevabı okursam, iş mantığı …

2
Yineleyiciyi Tasarım Deseni Yapan Nedir?
Iterator'ı diğer benzer yapılara kıyasla özel kılan şeyin ne olduğunu merak ediyorum ve bu da Dörtlü Çeteyi bir tasarım deseni olarak listeledi. Yineleyici polimorfizme (ortak bir arayüze sahip koleksiyonlar hiyerarşisi) ve endişelerin ayrılmasına (koleksiyonlar üzerinde yineleme, verilerin yapılandırılma biçiminden bağımsız olmalıdır) dayanmaktadır. Ancak, koleksiyonlar hiyerarşisini, örneğin, güç nesneleri gibi bu …

4
Sınırlı bir bağlamın sınırlarını açıkça tanımlama
DDD'yi okuduktan ve araştırdıktan bir ay kadar sonra, kendi projemi başlatmaya karar verdim ve bu sınırlı bağlamlarla DDD oluşturdum> Müşteriler Ürün:% s Emirler fatura Sınırlı her içerik, sunum katmanı, etki alanı katmanı, kalıcı katman olarak dinlenme API'sine sahiptir. Şimdiye kadar iyi, kod düzgün çalışıyor, ancak yekpare bir dünyadan geliyor, hala …

1
Kalıtım ve kompozisyonun aksine, özellikler ne zaman kullanılır?
OOP söz konusu olduğunda yeniden kullanılabilirliği uygulamanın üç yaygın yolu vardır: AFAIK Kalıtım: genellikle bir ilişkidir (bir ördek bir kuştur) Kompozisyon: genellikle has-a ilişkisini temsil etmek (bir araba has-a motoru) Özellikler (örneğin PHP'deki trait anahtar sözcüğü): ... bundan emin değilim Bana göre, özellikler hem has-a hem de a-a ilişkilerini uygulayabilirken, …

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.