Sarmalayıcı işlevi - Wrapper function
Bir sarmalayıcı işlevi , bir yazılım kitaplığındaki veya bir bilgisayar programındaki bir alt yordamdır (bir işlev için başka bir kelime ) ve temel amacı, çok az veya hiç ek hesaplama olmadan ikinci bir alt yordamı veya bir sistem çağrısını çağırmaktır . Sarmalayıcı işlevleri, bir alt yordamın temelindeki uygulamasının ayrıntılarını soyutlayarak bilgisayar programlarının yazılmasını kolaylaştırmak için kullanılır.
Amaç
Sarmalayıcı işlevleri, bir yetkilendirme aracıdır ve bir dizi amaç için kullanılabilir.
Programlama kolaylığı
Bilgisayar programları yazmayı kolaylaştırmak için sarmalayıcı işlevleri kullanılabilir. Buna bir örnek MouseAdapter , Java AWT kitaplığındaki ve benzer sınıflardır . Sarmalayıcı işlevleri, üçüncü taraf kitaplık işlevlerini kullanan uygulamaların geliştirilmesinde yararlıdır. Üçüncü taraf işlevlerinin her biri için bir sarmalayıcı yazılabilir ve yerel uygulamada kullanılabilir. Üçüncü taraf işlevlerinin değişmesi veya güncellenmesi durumunda, yerel uygulamadaki üçüncü taraf işlevlerinin tüm örneklerini değiştirmenin aksine yalnızca yerel uygulamadaki sarmalayıcıların değiştirilmesi gerekir.
Sınıf / nesne arayüzlerini uyarlama
Sarmalayıcı işlevleri, mevcut bir sınıfı veya nesneyi farklı bir arayüze sahip olacak şekilde uyarlamak için kullanılabilir . Bu, özellikle mevcut kitaplık kodunu kullanırken yararlıdır.
Kod testi
Sarmalayıcı işlevleri, işlevin her çağrısı için aynı hata denetimini tekrarlayarak bir kodun uzunluğunu büyük miktarda artırmadan önceden var olan sistem işlevleri için hata denetimi yordamlarını yazmak için kullanılabilir . Orijinal işleve yapılan tüm çağrılar, sarmalayıcıya yapılan çağrılarla değiştirilebilir, böylece programlayıcı, paketleyici yazıldıktan sonra hata kontrolünü unutabilir. Test sürücüsü, olası her yolu titizlikle takip etmek için, bir kod modülünü çalıştıran ve tipik olarak farklı ayarlar veya parametrelerle tekrar tekrar çağıran bir tür sarmalayıcı işlevdir. Bu, teslim edilebilir bir kod değildir, ancak atılabilir kod değildir ve tipik olarak regresyon testinde kullanılmak üzere tutulur . Arayüz adaptörü, arayüzü kullanıcı için daha anlaşılır veya alakalı hale getirmek amacıyla bir kod modülüne basitleştiren, uyarlayan veya büyüten bir tür sarmalayıcı işlevidir. Parametreleri yeniden adlandırabilir, parametreleri birleştirebilir, parametreler için varsayılanları ayarlayabilir ve benzerleri olabilir.
Çoklu miras
Temel sınıfların çoklu kalıtımını desteklemeyen bir programlama dilinde , onu simüle etmek için sarmalayıcı işlevleri kullanılabilir. Aşağıda LinkedList ve HashSet'ten "miras alan" bir Java sınıfının bir parçası örneği bulunmaktadır . Daha fazla uygulama ayrıntıları için Yönteme bakın .
public class Test implements LinkedList, HashSet{
@Override
//contains data members and data methods
//covariant return
}
Kitaplık işlevleri ve sistem çağrıları
Birçok kütüphane böyle olanlar gibi fonksiyonlar, C Standart Kütüphanesi olarak hareket arayüzleri için soyutlama ait sistem çağrıları . Çatal ve execve fonksiyonlar glibc'nin bu örnekleridir. Diyorlar alt düzey çatal ve execve sırasıyla sistem çağrıları.
Bu, "sistem çağrısı" ve "sistem çağrısı" terimlerinin yanlış bir şekilde sarıldıkları benzer şekilde adlandırılmış sistem çağrıları yerine daha yüksek düzey kitaplık çağrılarına atıfta bulunmasına yol açabilir.
Ayrıca bakınız
- Sarmalayıcı kitaplığı
- Sürücü sarıcı
- Adaptör düzeni
- Dekoratör modeli
- Yetki (programlama)
- Yönlendirme (nesne yönelimli programlama)
- Başka bir dile dil bağlama sarmalayıcı
- SWIG otomatik ambalaj üreteci
- İç içe geçmiş işlev
- Kısmi uygulama