Polimorphizm Nedir?
Kelime anlamı olarak polimorphizm çok biçimlilik anlamına gelmektedir. Poly “çok” morph ise “form”, “biçim” diye tanımlanmaktadır. Bu terim yazılım dışında biyoloji, tıp gibi alanlarda da kullanılmaktadır.
Object Oriented Programming (OOP)’ nin en temel olayı olan soyutlamanın 4 temel ilkesi bulunmaktadır. Bunlar Encapsulation, Inheritence, Abstraction, Polymorphism’dir.
Polimorphizm’in tanımını inherit veya implemente edilen nesne üzerinden farklı biçimdeki inheritance implementasyonları kullanma biçimi olarak yapabiliriz. Nesnelerin gerektiğinde başka bir nesneymiş gibi davranabilmesi diye açıklayabiliriz.
Örnek ile açıklamaya çalışırsak:
Aşağıdaki görselde de görebileceğiniz gibi IShape adında bir interface’imiz mevcut. Bu interface’imizin Drawing adında void bir metodu bulunmaktadır. Interface’mizi implemente etmiş bulunan 2 farklı classımız bulunmakta. Classlarımız interfacemizi implemente ettikleri için interface deki methodu classımızın içine çıkartıyoruz.
interface IShape
{
void Drawing();
}
class Rectangle : IShape
{
public void Drawing()
{
Console.WriteLine("Dikdörtgen Çiz");
}
}
class Triangle : IShape
{
public void Drawing()
{
Console.WriteLine("Üçgen Çiz");
}
}
Drawing Manager adında farklı bir classımızın daha olduğunu varsayalım. Bu classımıza da Interfacemizi contractor yardımı ile inject edelim. Drawing Manager classındaki Draw metoduna farklı kod yapıları veya kontroller de gelebilir ancak ben daha sade ve net olması açısından interface den gelen Drawing metodunu çağırdım.
class DrawingManager
{
private IShape _shape;
public DrawingManager(IShape shape)
{
_shape = shape;
}
public void Draw()
{
_shape.Drawing();
}
}
DrawingManager classımızı kullandığımız anda sistem bizden atık bir interface’imize bağlı bir nesne isteyecektir. Biz burada istersek Rectangle istersek Triangle verebilecek durumda oluyoruz. Yani aslında Draw metodumuza Rectangle veya Triangle gibi hareket etmesini sağlayabiliriz.
class Program
{
static void Main(string[] args)
{
DrawingManager drawingManager = new DrawingManager(new Rectangle());
drawingManager.Draw();
}
}
Polimorphizm Kullanmanın Avantajları nelerdir?
Esneklik ve güvenlik
Programlarımıza sağlamış olduğu esneklik sayesinde farklı işlemler arasındaki bağlantı ilişkilerini azaltarak daha güvenli bir hale getirir. Yapılabilecek yeni bir teknoloji güncellemesinde rahatlık sağlar.
Minimum seviyede kod yazımı ve okunurluk
Minimum seviyeye kod yazarak tekrarlanabilecek kod satırlarını azaltır. Bu da okunabilirlik sağladığı gibi zaman tasarrufu da sağlayabilir.
Oluşabilecek bir hatayı tek bir yapı içerisinde çözme kolaylığı
Program içerisinde oluşan bir hatayı yapı içerisinde kolayca bulma ve çözme kolaylığı sağlar.

Yorum Yap