11.3 – Business Sınıfında Liste ve Mantık


📘 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:

ÖzellikAçıklama
Static metotlar tercih edilirDoğrudan çağrılabilir
Koleksiyonlar burada tutulurList ile listeleme yapılır
Karar mekanizması burada kurulurif-else, switch-case, LINQ gibi yapılar içerir
UI’a yalın veri sunarUI 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

Leave a Reply