2013-02-20 11 views
5

bir genel kullanım sınıfı erişme (örn proje yapılandırma parametrelerini tutan bir sınıfı) aşağıda gibi.genel kullanılan sınıfları vardır Bizim uygulamamızda tüm proje üzerinde

class DB{ 
public: 
int projectVersion 
int somethingSoMuchImportantAllOverTheProject 
}; 
extern DB* pDB; 

Diğer tüm sınıflar bu sınıfı kullanacağından, bunların hepsine bir şekilde erişmesi gerekir. Bizim çözümümüz "extern DB * pDB;" başlık dosyasında, ihtiyacı olan her kimse, başlık ekledikten sonra ona erişebilecek. Belki daha iyi bir çözüm olduğunu düşünüyorum ve bu genel durum için fikirlerinizi almak istiyorum.

+1

bir işaretçi olarak _have_ mu? –

+4

'c' etiketini kaldırdım, bu açıkça C++. – unwind

+1

Konuştuğunuz şey basit bir global değişkendir (başka bir şekilde bir formda). Yani, daha iyi bir seçenek önermek için, sadece sözdizimi değil, bir tasarım düşüncesi olarak tüm resmi görmeniz gerekir. – KBart

cevap

1

Bu bir tekil bu. Üzerinde çok sayıda tartışma bulabilirsiniz, ancak önemli olan şey, sınıfın yapıcılarını gizlemek, böylece sınıfın kullanıcıları bir nesneyi kullanmak zorunda kalıyor.

+0

Singleton deseni diğer clases tarafından kullanılıyor ama ben de daha iyi diğer sınıflara bu nesneyi bağlamak konusunda da soruyorum. Sana "lütfen" ile ne demek emin değilim –

+0

o ... Seni oluşturma işlemi bağlantı parçası anlamına gelmez varsayalım. Doğrudan kodunuzda "kullanın", ör. "pDB-> projectVersion" ile sürümü kontrol edin. – mark

+0

Bu bültenden de bahsettiğim gibi, singleton, tek bir örneğe izin vermek suretiyle nesneyi tek yapmakla ilgilidir. Ancak, "extern DB * pDB; örnekte. –

İlgili konular