Projemde tüm MySQL öğelerini işlemek için kullandığım bir veritabanı sınıfım var. Bir veritabanına bağlanır, sorguları çalıştırır, hataları yakalar ve bağlantıyı kapatır.Kullanıcı sınıfımda bir veritabanı sınıfı kullanma
Şimdi sitemde bir üye alan oluşturmak gerekir ve ben de, Kullanıcı adı/şifre değişikliklerini/sıfırlama yapıp çıkış yaptıktan, kayıt işlemi verecek bir kullanıcıların sınıfını inşa edecekti. Bu kullanıcı sınıfında, MySQL'i açık nedenlerle kullanmam gerekiyor ... veritabanı sınıfımın ne için yapıldığı bu.
Ancak veritabanı sınıfımı kullanıcı sınıfımda nasıl kullanacağım konusunda kafam karıştı. Kullanıcı sınıfım için yeni bir veritabanı nesnesi oluşturmak ve o sınıftaki bir yöntem bittiğinde onu kapatmak isteyebilir miyim? Ya da bir şekilde tüm senaryonun tamamında kullanılabilecek bir 'global' veritabanı sınıfı yapıyorum (eğer bu durumda yardıma ihtiyacım varsa, ne yapacağımı bilmiyorum.)
Verebileceğiniz herhangi bir geri bildirim için teşekkürler ben mi.
Bu iki sınıfı birbirine karıştırmak gibi bir şey. Bir şeyleri kaçırmadığım sürece, sınıfların tamamen bağımsız olduğu bir çözümü tercih ederim. – Josh
OO tasarımı enkapsülasyon ile ilgilidir. Bana göre, veritabanını bağımsız olarak kapsüllemek mantıklıdır ve daha sonra erişen sınıflara sahiptir, böylece veritabanına erişimi tek başına kontrol eder. Bununla birlikte, diğer tasarımlar mümkündür. Veritabanına doğrudan erişen iki sınıfın olması mümkün olsa da, benim düşüncem de ek bir karmaşıklık katıyor. – WhirlWind
Bunu yapmanın başka bir yolu, veritabanına bağlanan bir veritabanı sınıfı örneğini başlatmak, sonra veritabanı sınıfından alınan bir veritabanı tanıtıcısı aracılığıyla "kullanıcı" şeyler yapmak için ayrı bir sınıf kullanmak olduğunu varsayalım. onu tercih ederim. – WhirlWind