Interface & Inheritance
Interface ve Inheritance (kalıtım), Solidity'de kodun yeniden kullanılabilirliğini ve modülerliğini artırmak için kullanılan güçlü araçlardır. Bu özellikler, akıllı kontratları daha esnek ve yönetilebilir hale getirir.
1. Interface
Interface, bir kontratın başka bir kontrat veya dış bir sistemle nasıl etkileşime gireceğini tanımlayan bir yapıdır. Interface'ler sadece fonksiyon başlıklarını içerir, fonksiyonların nasıl çalıştığı hakkında bilgi vermez. Interface'ler, diğer kontratların belirli bir arayüzü izlemesini sağlar ve fonksiyonların hangi isimlere sahip olduğunu ve parametrelerin neler olduğunu belirtir.
Bir interface tanımlarken sadece fonksiyonun adı ve parametreleri yazılır, fonksiyon içeriği yazılmaz.
Syntax
Bu örnekte, IExample
adında bir interface tanımlanmış ve doSomething
fonksiyonu için başlık verilmiştir. Bu fonksiyonun nasıl çalıştığı hakkında bilgi içermez.
Interface Kullanımı
Bu örnekte:
ICalculator
adında bir interface tanımlanmıştır.CalculatorUser
kontratı, bu interface'i kullanarak başka bir kontratınadd
fonksiyonunu çağırır.
2. Inheritance (Kalıtım)
Inheritance, bir kontratın başka bir kontratın özelliklerini ve fonksiyonlarını miras almasını sağlar. Bu, kodun yeniden kullanılabilirliğini artırır ve kodun daha modüler olmasını sağlar. Kalıtım, bir kontratın başka bir kontratın tüm fonksiyonlarını ve durum değişkenlerini devralmasını sağlar.
Syntax
Bu örnekte:
Parent
kontratı birvalue
değişkeni vesetValue
fonksiyonunu içerir.Child
kontratı,Parent
kontratını miras alır vevalue
değişkenine vesetValue
fonksiyonuna erişebilir. AyrıcadoubleValue
adında bir fonksiyon ekler.
3. Çoklu Kalıtım
Solidity'de bir kontrat birden fazla kontratı miras alabilir. Bu, çoklu kalıtım olarak bilinir ve çeşitli arayüzler veya kontratlar arasında kod paylaşımını sağlar.
Syntax
Bu örnekte:
Derived
kontratı, hemBase1
hem deBase2
kontratlarını miras alır ve her iki kontratın fonksiyonlarına erişebilir.
Örnek Uygulama
Aşağıda, bir akıllı kontratın arayüzü ve kalıtım özelliklerini kullanan bir örnek bulunmaktadır:
Bu örnekte:
IStore
adında bir interface tanımlanmış veset
veget
fonksiyonları için başlık verilmiştir.Storage
kontratı,value
değişkenini saklar ve bu değeri ayarlamak ve almak için fonksiyonlar içerir.EnhancedStorage
kontratı, hemStorage
kontratını hem deIStore
arayüzünü miras alır veincrement
fonksiyonunu ekler.
Last updated