solid prensiplerinin i harfine karşılık gelir. bu prensip bize der ki eğer interfaceler'de implementasyon yapıldığında bir operasyon o implementasyon içinde kullanılmayacaksa, ayrıştırılmalıdır. bu yüzden biz projelerimizi ilk olarak interface kısmını oluşturuyoruz.

yani "throw new notimplementedexception()" görüyorsanız ve bu boş kalıyorsa o interface'yi orada kullanmak yanlıştır.

(b: örnek:)

public interface ıweapon{
void mermisayisi();
void vurusgucu();
void hizi();
}

public class tabanca : ıweapon
{
// içini sen doldur.
}

public class sword: ıweapon
{
// içini sen doldur.
}

yukarıda ki yazdığım kod hatalı bir kod. çünkü sword evet bir silah olsa bile boşu boşuna mermi sayısını dahil ediyorum. bu yüzden bu interfaceler ayrılmak zorundadır.

(b: yani şöyle olması lazım;)

public interface ıtabanca : ıweapon
{
void mermisayisi();
}

public interface ıweapon{
void vurusgucu();
void hizi();
}

public interface ısword : ıweapon
{

}

//
public class tabanca : ıtabanca
{
// içini sen doldur.
}

public class sword: ısword
{
// içini sen doldur.
}

gördüğünüz gibi her silahın bir vuruş gücü ve hızı vardır. ve sword ve tabanca bir silahtır. ama sword ve tabancanın özellikleri daha farklıdır. ayrıca yarın bir gün yeni silah ekleyeceğimiz zaman örneğin tüfek şöyle olmalıdır;

public interface ıtufek : ıweapon
{
// içini sen doldur.
}

gördüğünüz gibi sistemi çok güzel yaptım. yarın bütün silahlara ortak özellik eklesem sadece weapona interfacesine eklemem yeterli olacaktır gibi gibi. classlar zaten otomatik olarak bunu implement etmek zorunda kalacak. ya da sadece yakın dövüşe bir özellik eklemek istersen ısword interfacesine eklemem yeterli olacaktır.

eğer projeyi classlardan geliştirmeye başlasaydık işin içinden çıkmamız zor olurdu. bu prensibi uygulamanın en kolay yolu, projeye interfaceler ile başlamak olacaktır ki bence doğru olanı budur.

son olarak bu interfaceler gerçek bir oyun projesinde daha çok ayrılıyor. burada basit olsun diye kısa oldu. ama mantığını kavradığınızı düşünüyorum. basit bir konu, ama bence. hehe.
devamını gör...
bu saatte görünce "sözlük gelişiyor." dediğim entry. kısacası; maymun yapmak istiyorsan buna bir de kuşun özelliklerini eklemeye çalışma prensibi.
ue4 bp ile yeni uğraşan arkadaşların inventory component çatısı altında wearable, consumable, weapon olarak tek seferde yapmaya çalıştığı.
devamını gör...

bu başlığa tanım girmek için olabilirsiniz.

zaten üye iseniz giriş yapabilirsiniz.

"ınterface segregation" ile benzer başlıklar

normal sözlük'ü kullanarak 3. parti dahil tarayıcı çerezlerinin kullanımına izin vermektesiniz. Daha detaylı bilgi için çerez ve gizlilik politikamıza bakabilirsiniz.

online yazar listesini görmek için lütfen giriş yapın.
zaman tüneli köftehor rehberi portakal normal radyo kütüphane kulüpler renk modu online yazarlar puan tablosu yönetim kadrosu istatistikler iletişim