«encapsulation» etiketlenmiş sorular

6
Kapsülleme ve yöntem karşılaştırması
"Tek erişim noktası" yöntemlerine karşı yöntem zincirleme klasik OOP sorunu var: main.getA().getB().getC().transmogrify(x, y) vs main.getA().transmogrifyMyC(x, y) Birincisi, her sınıfın sadece daha küçük bir operasyon kümesinden sorumlu olması ve her şeyi çok daha modüler hale getirme avantajına sahip gibi görünüyor - C'ye bir yöntem eklemek A, B veya C'de onu ortaya …

5
Kapsüllemeyi bozmadan Bağımlılık Enjeksiyonunu kullanabilir miyim?
İşte benim Çözümüm ve projelerim: BookStore (çözüm) BookStore.Coupler (proje) Bootstrapper.cs BookStore.Domain (proje) CreateBookCommandValidator.cs CompositeValidator.cs IValidate.cs IValidator.cs ICommandHandler.cs BookStore.Altyapı (proje) CreateBookCommandHandler.cs ValidationCommandHandlerDecorator.cs BookStore.Web (proje) Global.asax BookStore.BatchProcesses (proje) program.cs Bootstrapper.cs : public static class Bootstrapper.cs { // I'm using SimpleInjector as my DI Container public static void Initialize(Container container) { container.RegisterManyForOpenGeneric(typeof(ICommandHandler<>), typeof(CreateBookCommandHandler).Assembly); …


1
C ++ özel üye işlevleri kapsüllemek için arkadaş sınıfları kullanma - iyi uygulama veya kötüye?
Bu yüzden, böyle bir şey yaparak başlıklara özel işlevler koymaktan kaçınmanın mümkün olduğunu fark ettim: // In file pred_list.h: class PredicateList { int somePrivateField; friend class PredicateList_HelperFunctions; public: bool match(); } // In file pred_list.cpp: class PredicateList_HelperFunctions { static bool fullMatch(PredicateList& p) { return p.somePrivateField == 5; // or whatever …


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 …

4
Kapsülleme aşırı kullanımından muzdarip miyim?
Çeşitli projelerde kodumda bana kod kokusu ve yapmak kötü bir şey gibi görünen bir şey fark ettim, ancak bununla başa çıkamıyorum. "Temiz kod" yazmaya çalışırken, kodumu okumayı kolaylaştırmak için özel yöntemleri aşırı kullanma eğilimindeyim. Sorun kod gerçekten daha temiz ama aynı zamanda test etmek daha zor (evet biliyorum özel yöntemleri …

4
İç İçe Sınıflar: Yararlı bir araç mı yoksa kapsülleme ihlali mi?
Bu yüzden hala bunları kullanıp kullanmamam konusunda kararsızım. Kodlamanın aşırı bir ihlali olduğunu hissediyorum, ancak kodumda daha fazla esneklik kazanırken bir dereceye kadar kapsülleme elde edebildiğimi görüyorum. Önceki Java / Swing projeleri Bir dereceye kadar iç içe sınıflar kullanmıştım, Ancak şimdi C # 'da diğer projelere geçtim ve bunların kullanımından …


5
Bir fonksiyonun dışarıdan erişildiğini nasıl açıklayabilirim?
Bu C'ye özgü bir sorudur. Çeviri birimi sınırları içinde mümkün olan her şeyi .hdosyada yalnızca birkaç işlevi açığa çıkarmaya çalışıyorum . Yani, staticdosya düzeyindeki nesnelere bağlantı veriyorum . Şimdi, birkaç fonksiyonun diğer modüller tarafından çağrılması gerekiyor, ancak doğrudan değil. Modül / dosya / çeviri birimim, bir işleve bir işaretçi ileterek …
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.