package
0.0.0-20240526185743-31ed9d991bbe
Repository: https://github.com/mertozturkk/golang-basics.git
Documentation: pkg.go.dev

# README

Polymorphism Kavramı

Polymorphism, bir programlama dilinde nesnelerin farklı türlerde olmalarına rağmen aynı arayüzü kullanarak işlevleri çağırabilmesini sağlayan bir özelliktir. Bu kavram, özellikle nesne yönelimli programlamada (OOP) önemli bir yere sahiptir. Polymorphism sayesinde farklı nesneler aynı metodları farklı şekillerde uygulayabilir, bu da kodun esnekliğini ve genişletilebilirliğini artırır.

Go Dilinde Polymorphism

Go dili, nesne yönelimli programlama özellikleri içermese de, arayüzler (interfaces) aracılığıyla polymorphism sağlar. Arayüzler, belirli metodlara sahip olması gereken bir türün (type) belirlenmesine yardımcı olur. Bu sayede, farklı türlerdeki nesneler aynı arayüzü uygulayarak polymorphic davranış sergileyebilirler.

Örnek Senaryo: Sepette Toplam Tutar Hesaplama

Bu örnekte, polymorphism kavramını kullanarak üç farklı ürün türü için vergilendirme yaparak bir sepetin toplam tutarını hesaplayacağız. Her ürün türü için farklı bir vergi hesaplama yöntemi uygulanacak, ancak hepsi aynı purchasable arayüzünü uygulayacak. Bu arayüz, ürünlerin vergi hesaplama metodunu içerir. Sepete eklenen ürünler, arayüzü uygulayarak kendi vergilendirme metodlarını kullanır ve toplam tutar hesaplanır.

Polymorphism’in Avantajları

1.	Esneklik: Farklı türdeki nesneler aynı arayüzü kullanarak farklı şekillerde davranabilirler.
2.	Kodun Genişletilebilirliği: Yeni türler eklemek kolaydır; sadece arayüzü uygulamak yeterlidir.
3.	Bakım Kolaylığı: Kod daha modüler ve anlaşılır hale gelir, bu da bakım ve güncellemeleri kolaylaştırır.