Ana içeriğe atla

C# Interface Kullanımı




C#'da bir interface, nesne yönelimli programlamada (OOP) bir sözleşme (contract) olarak işlev gören bir yapıdır. Bir interface, bir sınıfın sahip olması gereken yöntemler, özellikler, olaylar veya dizinleyiciler gibi üye tanımlamalarını belirtir, ancak bu üyeler için bir uygulama sağlamaz. Bu nedenle, bir interface, sadece ne yapılması gerektiğini belirtir ama nasıl yapılacağını belirlemez.

Interface'in Avantajları ve Kullanım Nedenleri

  1. Bağımlılığı Azaltma (Loosely Coupling): Interface'ler, kodun daha bağımsız hale gelmesine yardımcı olur. Bir sınıfın başka bir sınıfa sıkı sıkıya bağlı olmasını önleyerek, değişikliklerin diğer sınıfları etkilemesini en aza indirir.

  2. Çoklu Kalıtım Desteği: C#'da sınıflar yalnızca bir sınıftan türeyebilir, ancak birden fazla interface'den kalıtılabilir. Bu, çoklu kalıtım ihtiyaçlarını karşılamak için önemli bir özelliktir.

  3. Kodun Test Edilebilirliğini Artırma: Interface'ler kullanarak nesneleri soyutlayabilir ve testlerde mock nesneler kullanarak bağımsız birim testleri yapılabilir.

  4. Polimorfizm (Çok Biçimlilik) Sağlama: Interface'ler, bir nesnenin farklı formlarda kullanılabilmesini sağlar. Bir interface türündeki bir nesne, farklı sınıflar tarafından uygulanabilir; bu da esnek ve genişletilebilir bir yapı sunar.

Yorumlar

Bu blogdaki popüler yayınlar

FOREGIN KEY ve INNER JOIN ile ilişkili tablo oluşturma Örneği

--1)DataBase oluşturma Sorgusu --CREATE DATABASE Join_Alistirma; --GO --USE Join_Alistirma; --GO --2)musteri Tablosu oluşturma --CREATE TABLE musteri ( --    musteri_ID INT IDENTITY(1,1) PRIMARY KEY, --    adi_soyadi NVARCHAR(100) NOT NULL, --    telefon NVARCHAR(20) NOT NULL --); ---3)araclar Tablosunu Oluştur (FOREIGN KEY ile) --CREATE TABLE araclar ( --    id INT IDENTITY(1,1) PRIMARY KEY, --    musteri_ID INT NOT NULL, --    plaka NVARCHAR(20) NOT NULL, --    marka NVARCHAR(50), --    model NVARCHAR(50), --    yil INT, --    FOREIGN KEY (musteri_ID) REFERENCES musteri(musteri_ID) --); ----------------------------------------------------------------------------- ----NOT  --musteri_ID → musteri tablosuyla bağlantılı olacak. --plaka, marka, model, yil alanları araç bilgilerini tutacak. ----------------------------------------------------------------------------- ---4)Tablolara muste...

C# Forms ve ADO.NET ile SQL Server 2022'de SQLConnection bağlantısı ile INSERT İşlemi

// SQL bağlantı yolu için sistem paketinin yüklenmesi using System; using System.Data.SqlClient; using System.Windows.Forms; namespace VeriTabanıTestProjesi {     public partial class Form1 : Form     {         // SQL bağlantı nesnesinin tanımlanması         SqlConnection sqlBaglanti = new SqlConnection(@"Data Source=DESKTOP-0B1GIRL\SQLEXPRESS;Initial Catalog=TestVT;Integrated Security=True");         public Form1()         {             InitializeComponent();         }         private void button1_Click(object sender, EventArgs e)         {             // Veri Tabanında oluşabilecek hataların yakalanması             try             {                 // SQL bağlantısının a...

INNER JOIN Silme İşleminde REFERANCE Hatası

 SQL 'de INNER JOIN için ben diagram kullandım ama silme işlemleri için bu hataya yol açtı kodlar yazıldıktan sonra. Sillme işleminin yapıla bilmesi için : Diagram üzerinden "ON DELETE CASCADE" ekleme SSMS’te veritabanını aç. Database Diagrams → kullandığın diyagramı aç. isim tablosu ile soyisim tablosu arasındaki ilişki çizgisine çift tıkla . INSERT and UPDATE Specification bölümünü bul. Delete Rule → Cascade olarak değiştir. Kaydedip diyagramı kapat.   2️⃣ SQL komutuyla ekleme (manuel yöntem) Eğer diyagramdan uğraşmak istemiyorsan, SQL koduyla da ekleyebilirsin: ALTER TABLE Soyisim DROP CONSTRAINT FK_Soyisim_Isim;  -- Burada mevcut foreign key adını yazacaksın ALTER TABLE Soyisim ADD CONSTRAINT FK_Soyisim_Isim FOREIGN KEY (isim_Id) REFERENCES Isim(isim_Id) ON DELETE CASCADE; ON DELETE CASCADE tamamen silme işlemleri için tanımlanan bir FOREIGN KEY davranış kuralıdır. Normal FOREIGN KEY : Ana tabloda bir kayıt silmek istersen ve bu kayıt başka ...