«class-design» etiketlenmiş sorular

En iyi bilinen endüstri uygulamalarına sahip sınıfların nasıl tasarlanacağına ilişkin genel yönergeler.

16
Tek Sorumluluk İlkesini kullanırken, “sorumluluk nedir?”
"Tek Sorumluluk İlkesi" nin "sadece bir şey yaptığı" anlamına gelmediği çok açık görünüyor. Bunun için yöntemler var. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } Bob Martin, “sınıfların değişmesi için tek bir neden olması gerektiğini” söylüyor. Ancak, …

9
Birden fazla kalıtımın nefret edilmesinin “gerçek” bir nedeni var mı?
Her zaman bir dilde çoklu miras alma fikrini sevdim. Çoğu zaman kasıtlı olarak affedilmiş olmasına rağmen ve sözde "değiştirme" arayüzlerdir. Arayüzler, çoklu kalıtımın aynı toprakları kapsamaz ve bu kısıtlama zaman zaman daha fazla kazan koduna yol açabilir. Bunun için duyduğum tek temel sebep , temel sınıflardaki elmas problemi . Bunu …

13
Diğer sınıf uygulama programcıları nasıl uyarılır?
"Belirli bir şekilde kullanılması gereken" dersleri yazıyorum (Sanırım bütün derslerin ...). Mesela ben bir çağrı gerektirenfooManager sınıfı yaratıyorum . Ve örneği biraz daha ileri itmek için, eylemini dinlemezsek, sınıf yararsızdır .Initialize(string,string)ThisHappened Demek istediğim, yazdığım sınıf yöntem çağrıları gerektiriyor. Ancak bu yöntemleri çağırmazsanız ve boş bir yeni FooManager ile sonuçlanırsanız, derler. …

12
Örnekleri birkaç katmandan geçirmek kötü bir uygulama mıdır?
Program tasarımımda, çoğu zaman nesne sınıflarını birkaç sınıftan geçirmem gereken noktaya gelirim. Örneğin, bir ses dosyasını yükleyen ve sonra onu bir oynatıcıya ileten bir denetleyiciye sahipsem ve oynatıcı onu playerRunnable'a geçirir, bu da başka bir yere geçirir vs. bunun nasıl önleneceğini biliyorum. Yoksa bunu yapmak iyi mi? EDIT: Belki oyuncu …

6
Bir alıcı, nesnesi geçersiz durumdaysa bir istisna atmalıdır mı?
Genelde bir OOP sorunu olduğunu düşünmeme rağmen, özellikle Java'da sık sık bu soruna rastlarım. Yani: bir istisna yaratmak, bir tasarım problemini ortaya çıkarır. Bir String namealan ve bir String surnamealan olan bir sınıfım olduğunu varsayalım . Daha sonra bu alanları bir tür belgede görüntülemek üzere bir kişinin tam adını oluşturmak …

6
Bir sınıfı kendi listesinin alt sınıfı olarak tanımlamanın dezavantajı ne olabilir?
Yakın tarihli bir projemde, aşağıdaki başlığa sahip bir sınıf tanımladım: public class Node extends ArrayList<Node> { ... } Bununla birlikte, CS profesörümle konuştuktan sonra, sınıfın "hafıza için korkunç" ve "kötü uygulama" olacağını belirtti. İlkini özellikle doğru, ikincisini öznel olarak bulamadım. Bu kullanım için gerekçem, bir örneğin davranışının ya özel bir …

6
Sınıf üyelerini mi tercih ediyorsunuz yoksa içsel yöntemler arasında tartışmalar mı?
Bir sınıfın özel bölümünde, birden fazla özel yöntem tarafından kullanılan bir değer olduğunu varsayalım. İnsanlar bunu sınıf için bir üye değişkeni olarak tanımlamayı mı yoksa her bir yönteme argüman olarak geçirmeyi mi tercih ediyorlar - ve neden? Bir yandan, bir sınıftaki indirgeme durumunun (yani üye değişkenleri) genellikle iyi bir şey …




5
Yuvalanmış Sınıfları ne zaman ve neden kullanmalı?
Nesneye Yönelik Programlama kullanarak, bir sınıf (iç içe geçmiş sınıf) içinde bir sınıf oluşturma gücümüz var, ancak 4 yıllık kodlama deneyimimde asla iç içe geçmiş bir sınıf oluşturmadım. Yuvalanmış sınıflar ne işe yarar? Bir sınıfın yuvalanmışsa özel olarak işaretlenebileceğini ve o sınıfın tüm özel üyelerine içerik içeren sınıftan erişebileceğimizi biliyorum. …

3
İsteğe bağlı parametreler veya aşırı yüklenmiş yapıcılar
Bir uygulama yapıyorum DelegateCommandve yapıcı (lar) ı uygulamak üzereyken, aşağıdaki iki tasarım seçeneğiyle karşılaştım: 1: Birden fazla aşırı yükleniciye sahip olmak public DelegateCommand(Action<T> execute) : this(execute, null) { } public DelegateCommand(Action<T> execute, Func<T, bool> canExecute) { this.execute = execute; this.canExecute = canExecute; } 2: İsteğe bağlı parametreli yalnızca bir kurucuya …

10
Yapıcılar olmadan yaşayabilir miyiz?
Diyelim ki bazı nedenlerle tüm nesneler bu şekilde yaratıldı $ obj = CLASS :: getInstance (). Daha sonra ayarlayıcıları kullanarak bağımlılıkları enjekte ediyoruz ve $ obj-> initInstance () kullanarak başlatma işlemini başlatıyoruz; Yapıcıları hiç kullanmayacaksak, çözülemeyen gerçek sorunlar veya durumlar var mı? Bu şekilde nesne yaratmanın nedeni Ps, getInstance () …


2
Aynı şeyi yapan farklı fonksiyon imzaları sağlamak iyi bir fikir midir?
İşte üç değerden oluşan bir C ++ sınıfıdır. class Foo{ //Constructor Foo(std::string, int, char); private: std::string foo; char bar; int baz; }; Tüm parametre tipleri farklıdır. Yapıcıyı aşırı yükleyebilirim, böylece sipariş önemli değil. class Foo{ //Constructors Foo(std::string, char, int); Foo(std::string, int, char); Foo(char, int, std::string); Foo(char, std::string, int); Foo(int, std::string, …

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.