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

4
Nesneye Yönelik Programlama: getters / setters veya logical names
Şu anda yazdığım bir sınıfa bir arayüz düşünüyorum. Bu sınıf, bir karakterin stillerini içerir, örneğin karakterin kalın, italik, altı çizili vb. Olup olmadığını iki gün boyunca kendimle tartışıyorum. Değerleri değiştiren yöntemler için getters / setters veya mantıksal isimler kullanmalı bu stiller. Mantıksal isimleri tercih etme eğilimim olsa da, bu kadar …

3
Bir “Çalışan” sınıfı nasıl tasarlanmalıdır?
Çalışanları yönetmek için bir program oluşturmaya çalışıyorum. Ancak Employeesınıfı nasıl tasarlayacağımı anlayamıyorum. Amacım, bir Employeenesne kullanarak veritabanındaki çalışan verilerini oluşturmak ve işlemek . Düşündüğüm temel uygulama bu kadar basitti: class Employee { // Employee data (let's say, dozens of properties). Employee() {} Create() {} Update() {} Delete() {} } Bu …

2
Yalnızca bir örneği olan Python sınıfları: Ne zaman (tek) sınıf örneği oluşturulur ve bunun yerine sınıfla ne zaman çalışır?
Yalnızca bir kez başlatılacak olan bir Python sınıfı verildiğinde, yani sınıfın yalnızca bir nesnesi olacaktır. Hangi durumlarda doğrudan sınıfla çalışmak yerine tek bir sınıf örneği oluşturmanın mantıklı olduğunu merak ediyordum. Benzer bir soru var , ama farklı bir odağı var: küresel değişkenleri ve fonksiyonları bir sınıfa ayırmak ve Python'a özgü …


4
Veri Nesneleri İçin Bağımlılık Enjeksiyonu Kullanılsın mı?
Sadece bağımlılık enjeksiyonunu öğreniyorum ve bir şeye takıldım. Bağımlılık Enjeksiyonu, yapıcı aracılığıyla bağımlı sınıflar göndermenizi önerir, ancak bunun veri nesneleri için gerekli olup olmadığını merak ediyorum. Birim-Test Edilebilirlik, DI'nin temel faydalarından biri olduğundan, yalnızca verileri depolayan ve herhangi bir prosedürün hiç bir şekilde test edilmediği bir veri nesnesi olur, bu …

2
Sınıflarım için ortak bir veritabanı bağlantısı nereye yerleştirilir
Kaydetme / veritabanındaki bazı nesneleri alma görevi yapmak birkaç sınıfları (depolar) var; hepsinin bir veritabanıyla bağlantı kurması gerekir. Her sınıfta ConnectionStringve SqlConnectionsınıflarını yeniden tanımlamaktan kaçınmak için onlara açık bir bağlantıyı geçmeyi düşündüm . Peki bu bağlantıyı tanımlamak / açmak ve sınıflara aktarmak için en iyi yer / zaman nerededir? Bu …
11 c#  sql  class-design 

5
C ++ kodumda sınıf bağımlılığı nasıl giderilir?
C ++ projemde iki sınıfım var Particleve Contact. Olarak Particlesınıf, bir üye değişkeni olan std::vector<Contact> contactsbir bütün temas içeren Particlebir nesne ve karşılık gelen üye işlevlerini getContacts()ve addContact(Contact cont). Bu nedenle, "Particle.h" içinde, "Contact.h" yi içerir. In Contactsınıfında, ben kurucusuna kodu eklemek istiyorum Contacto arayacak Particle::addContact(Contact cont)böylece contactsher ikisi için …

5
Arayüz ve Kalıtım: Her iki dünyanın en iyisi mi?
Arayüzleri 'keşfettim' ve onları sevmeye başladım. Bir arayüzün güzelliği, bir sözleşme olması ve bu sözleşmeyi yerine getiren herhangi bir nesne, arayüzün gerekli olduğu her yerde kullanılabilir. Bir arabirimdeki sorun, sıradan özellikler için bir acı olan ve DRY'yi yenen varsayılan bir uygulamaya sahip olamamasıdır. Bu da iyidir, çünkü uygulamayı ve sistemi …

2
bir sınıfı sadece tek bir işlevi yeniden kullanmak üzere genişletmek makul bir uygulama mıdır?
Bir wordpress sitesi için bir dizi posta filtresi geliştiriyorum ve ilk 4'ü tek bir sınıfla oluşturdum. Son ikisi, sınıflarında yalnızca tek bir işlevi (son bağlantıları üretme işlevi) paylaşacak kadar farklıdır. Bu durumda veya herhangi bir sayıdaki benzer varsayımsal örnekte, bu işlevselliğe sahip olmak için orijinal sınıfı genişletmek makul mü yoksa …

5
“Boş” Özet / Dersleriniz Olabilir mi?
Tabii ki yapabilirsiniz, sadece böyle bir şekilde tasarım yapmanın mantıklı olup olmadığını merak ediyorum. Koparma klonu yapıyorum ve sınıf tasarımı yapıyordum. C ++ 'da öğrendiklerimi uygulamak için gerekmeme rağmen kalıtım kullanmak istedim. Sınıf tasarımını düşünüyordum ve şöyle bir şey buldum: GameObject -> temel sınıf (x ve y ofsetleri gibi veri …


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
İş nesnesi sınıfı tasarımın bu “tamamen halka açık” zihniyetine nasıl karşı çıkılır?
İş nesnelerimiz üzerinde çok sayıda birim testi ve yeniden düzenleme yapıyoruz ve sınıf tasarımı konusunda diğer akranlardan çok farklı görüşlere sahibim . Ben hayranı değilim örnek bir sınıf: public class Foo { private string field1; private string field2; private string field3; private string field4; private string field5; public Foo() { …


5
Kompozisyonun genelleme yerine daima doğru seçim olduğunu nasıl biliyoruz?
Bir nesne fiziksel olarak mevcut olsun ya da olmasın, onu farklı şekillerde modellemeyi seçebiliriz. Birçok durumda keyfi veya genelleme kullanabiliriz. Bununla birlikte, GoF "genelleme üzerine iyilik kompozisyonu [sic]" ilkesi bizi kompozisyon kullanmamıza yönlendirir. Yani, örneğin bir çizgiyi modellediğimizde, Point (generalization) yerine Point (kompozisyon) türünde iki üye PointA ve PointB içeren …
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.