Winamp'ı kullandınız mı bilmiyorum ama duymuş olmalısınız diye düşünüyorum.Media player programıdır.Winamp dışarıdan eklenti(plug-in) kabul edip onu kendi programına entegre edebiliyordu.Ne demek bu peki ? Şu demek oluyor arkadaşlar.Ben evimde otururken winamp'a bir özellik yazıp gönderiyorum.Winamp da bunu kendi programına entegre ediyor veya winamp kullanıcılarından herhangi biri benim yazdığım eklentiyi kendi winamp'ına ekleyip kullanabiliyor ( Tabi düzgün yazdıysam :) ). Peki bu işlem nasıl oluyor arkadaşlar ? Winamp benim yazdığım eklentiyi nasıl anlayıp da kendine ekleme yapıyor ? Ve ya ben winamp'a eklenti yazarken nereye nasıl kod yazacağımı nereden biliyorum ? Ortada öyle bir durum olmalı ki hem benim yazacağım eklentiyi winamp'ın anlaması lazım hem de benim nereye nasıl kod yazacağımı bilmem lazım bu sorunların çözülmesi için.İşte tüm bu sorunları çözmenin bir yolu var.Elbetteki makalemin konusu olan interface. Yani winamp bana bak kardeşim eğer sen bana eklenti yazmak istiyorsan ve benim bunları anlayıp kendime eklenti olarak eklememi istiyorsan benim belirlediğim şartlara uyacaksın demek zorundadır.Yani önüme gerçek hayattaki gibi bir sözleşme sunmalıdır ki ben o sözleşmeye uyayım ve winamp da kendine eklentiyi eklesin herkes mutlu mesut olsun.
Bir başka gerçek hayattan örnek vermek gerekirse en güzel örneklerden biri olan iş ilanlarını örnek olarak verebilirim.Mesela bir yazılım elemanı arayan iş ilanına baktığınızda bir veya birden fazla yazılım dili , aynı şekilde veri tabanı , belli teknolojiler , takım çalışmasına yatkın falan filan gibi aradığı elemanın niteliklerini anlatır.Şimdi bir web tasarımcısının bu ilana başvurması ne kadar doğrudur ? Ne kadar olumlu olarak sonuçlanır ? Hiç bir sonuca varılmaz değil mi ? Aslında iş ilanı bize şunu demektir.Bakın benim istediğim özellikler ve şartlar bunlar.Bunları kabul eden varsa başvursun.İnterface mantığı da aynı bu şekildedir.
Mantığını , neden ve ne amaçla kullanıldığını basit olarak anlattıktan sonra winamp ın bizden istediği sözleşmeyi yani interface i yani daha önceden bizim için hazırladığı şartları biz sözde olarak hazırlayalım ve daha sonra bu interface i kullanarak eklenti yazıp gönderelim .
interface WinampSozlesme
{
void ArkaPlanDegistir(string
renk);
void MuzikEfecti();
void ButtonRenkleriAyarla();
}
public class KorayinEklentisi:WinampSozlesme
{
public void
ArkaPlanDegistir(string renk)
{
// Arka planı değiştirmek için gerekli kodlarım
}
public void
MuzikEfecti()
{
// Müzik efekti için gerekli kodlarım
}
public void
ButtonRenkleriAyarla()
{
// Buttonların renklerini değiştirmek için gerekli kodlarım
}
}
Hiç yorum yok:
Yorum Gönder