📘 11.3 – Business Sınıfında Liste ve Mantık
🔹 Açıklama:
Business sınıfı (İş katmanı), uygulamada veriyle ilgili kararların ve kuralların yazıldığı katmandır. Entity sınıfları yalnızca veriyi tutarken, Business sınıfı verilerle ne yapılacağına karar verir.
Bu sınıf:
- Listeleme, ekleme, silme gibi temel işlemleri yapar
- Kurallar (örneğin: “yaşı 18’den küçük olan öğrenci kayıt olamaz”) burada yazılır
- UI ile Entity arasında bir filtreleme ve doğrulama köprüsü kurar
- Uygulamanın mantığını merkezi hâle getirerek kod tekrarını önler
🔍 Nerelerde Kullanılır?
- Öğrenci, ürün, personel kayıt işlemlerinde
- Arama, filtreleme, sıralama senaryolarında
- Giriş doğrulama, hesaplama, koşullu işlemlerde
- Kullanıcı hatalarının kontrol edilmesi gereken tüm alanlarda
🧱 Yapısal Özellikler:
Özellik | Açıklama |
---|---|
Static metotlar tercih edilir | Doğrudan çağrılabilir |
Koleksiyonlar burada tutulur | List ile listeleme yapılır |
Karar mekanizması burada kurulur | if-else, switch-case, LINQ gibi yapılar içerir |
UI’a yalın veri sunar | UI sınıfı sadece gösterir, mantık içermez |
🎯 Kazanımlar:
Bu başlığı tamamlayan öğrenci:
- Uygulama mantığını nasıl soyutlayacağını öğrenir
- Listeleme, filtreleme gibi işlemleri merkezi hâlde toplamayı kavrar
- Katmanlar arası sorumluluk paylaşımını uygulamalı olarak kavrar
- UI katmanında sadece sunum, Business katmanında işlem mantığı kullanmayı öğrenir
🧪 11.3 – Business Sınıfında Liste ve Mantık: 5 Uygulamalı Örnek
📌 Örnek 1: Öğrenci Ekleme ve Listeleme
➤ Entity:
public class Ogrenci
{
public string Ad { get; set; }
public int Numara { get; set; }
}
➤ Business:
public class OgrenciBusiness
{
private static List<Ogrenci> ogrenciler = new List<Ogrenci>();
public static void Ekle(Ogrenci o)
{
ogrenciler.Add(o);
}
public static List<Ogrenci> Listele()
{
return ogrenciler;
}
}
📝 Açıklama:
Öğrencileri listelemek ve eklemek için Business katmanı merkezi rol üstlenir.
📌 Örnek 2: Ürün Filtreleme (Fiyata Göre)
➤ Entity:
public class Urun
{
public string Ad { get; set; }
public double Fiyat { get; set; }
}
➤ Business:
public class UrunBusiness
{
private static List<Urun> urunler = new List<Urun>();
public static void Ekle(Urun u)
{
urunler.Add(u);
}
public static List<Urun> Filtrele(double maxFiyat)
{
return urunler.Where(x => x.Fiyat <= maxFiyat).ToList();
}
}
📝 Açıklama:
Business sınıfı sayesinde filtreleme işlemi UI’dan soyutlanmıştır.
📌 Örnek 3: Kullanıcı Giriş Doğrulama
➤ Entity:
public class Kullanici
{
public string KullaniciAdi { get; set; }
public string Sifre { get; set; }
}
➤ Business:
public class KullaniciBusiness
{
private static List<Kullanici> kullanicilar = new List<Kullanici>()
{
new Kullanici{ KullaniciAdi = "admin", Sifre = "123" }
};
public static bool GirisYap(string ad, string sifre)
{
return kullanicilar.Any(k => k.KullaniciAdi == ad && k.Sifre == sifre);
}
}
📝 Açıklama:
UI sadece sonucu gösterecek, tüm karar mekanizması Business katmanında kalacaktır.
📌 Örnek 4: Ortalama Hesaplayan Business Metodu
➤ Entity:
public class Not
{
public string DersAdi { get; set; }
public double Puan { get; set; }
}
➤ Business:
public class NotBusiness
{
private static List<Not> notlar = new List<Not>();
public static void NotEkle(Not n)
{
notlar.Add(n);
}
public static double OrtalamaHesapla()
{
return notlar.Count == 0 ? 0 : notlar.Average(n => n.Puan);
}
}
📝 Açıklama:
İş kuralları UI’ya yüklenmeden, merkezi olarak bu sınıfta hesaplanır.
📌 Örnek 5: Personel Maaş Zam Hesaplama
➤ Entity:
public class Personel
{
public string Ad { get; set; }
public double Maas { get; set; }
}
➤ Business:
public class PersonelBusiness
{
private static List<Personel> liste = new List<Personel>();
public static void Ekle(Personel p)
{
liste.Add(p);
}
public static void ZamYap(double oran)
{
foreach (var p in liste)
{
p.Maas += p.Maas * (oran / 100);
}
}
public static List<Personel> Listele()
{
return liste;
}
}
📝 Açıklama:
Zam oranı doğrudan UI’da değil, Business sınıfında belirlenip uygulanır.
✅ Özet:
Bu örneklerle öğrenci:
- İş mantığını veriden ayırmayı
- Katmanlara göre görev dağılımını
- Business sınıfında LINQ, filtreleme, hesaplama ve karar yapıları kullanmayı öğrendi