"Merhaba Amigo! Yine ben. Size arayüzler hakkında başka bir bakış açısı sunmak istiyorum. Görüyorsunuz, çoğu zaman bir sınıf belirli bir nesnenin modelidir. Buna karşılık, arayüzler daha çok bir nesnenin yetenekleri veya yetenekleri gibidir. nesnenin kendisinden ziyade roller."

Örneğin, arabalar, bisikletler, motosikletler ve tekerlekler gibi şeyler en iyi şekilde sınıflar ve nesneler olarak temsil edilir. Ancak "Hareket edebilirim", "İnsanları taşıyabilirim" ve "Park edebilirim" gibi yetenekleri arayüzler olarak daha iyi temsil edilir. Bu örneğe göz atın:
java kodu | Tanım |
---|---|
|
Hareket etme yeteneğine karşılık gelir. |
|
Hareket etme yeteneğine karşılık gelir. |
|
Kargo taşıma kabiliyetine karşılık gelir. |
|
Bir «tekerlek» sınıfı. Hareket etme kabiliyetine sahiptir. |
|
Bir "araba" sınıfı. Hareket etme, bir kişi tarafından sürülme ve yük taşıma yeteneğine sahiptir. |
|
Bir «kaykay» sınıfı. Hareket etme ve bir kişi tarafından kontrol edilme yeteneğine sahiptir. |
Arayüzler, programcının hayatını büyük ölçüde basitleştirir. Programlar genellikle binlerce nesneye, yüzlerce sınıfa ve yalnızca birkaç düzine arabirime (rol) sahiptir. Birkaç rol vardır, ancak birçok şekilde (sınıflar) birleştirilebilirler.
Bütün mesele şu ki, diğer tüm sınıflarla etkileşimi tanımlayan kod yazmak zorunda değilsiniz. Tek yapmanız gereken rollerle (arayüzlerle) etkileşime geçmek.
Robotik bir inşaatçı olduğunuzu hayal edin. Düzinelerce yardımcı robotunuz var ve bunların her biri birden fazla beceriye sahip olabilir. Bir duvar inşa etmeyi acilen bitirmeniz gerektiğini varsayalım. Sadece "inşa etme" yeteneğine sahip tüm robotları alıp onlara duvarı inşa etmelerini söylüyorsunuz. Hangi robotların yaptığı gerçekten umurunuzda değil. Robotik bir sulama kabı olsun. Nasıl inşa edileceğini biliyorsa, bırakın inşa etsin.İşte kodda nasıl görüneceği:
java kodu | Tanım |
---|---|
|
"Duvar inşa etme" yeteneği. «Duvar ör» komutunu anlar (uygun yöntemi kullanır). |
|
Bu yeteneğe/yeteneğe sahip robotlar.
Bir sulama bir duvar inşa edemez (WallBuilder arayüzünü uygulamaz). |
|
Duvar ör emrini nasıl veririz? |
"Bu inanılmaz derecede ilginç. Arayüzlerin bu kadar ilginç bir konu olabileceğini hiç düşünmemiştim."
"Ve sonra bazıları! Polimorfizmle birlikte, tamamen akıllara durgunluk veriyor."
GO TO FULL VERSION