İçindekiler
Bu, okuyucuyu Spring Framework kullanımına hazırlamak için Java dilinin temel konularını gözden geçirmeye odaklanan bir dizi öğreticinin üçüncü bölümüdür. Bu eğitim serisinin ilk bölümü buradan, ikinci bölümü ise buradan edinilebilir. Bu derste arayüzlerin ne olduğundan, programlama arayüzlerinin ne olduğundan, avantajlarından ve Spring Framework ile ilişkisinden bahsedeceğiz.Kalıtım ve polimorfizm kavramlarını zaten görmüştük ve arayüzler, belirli bir işlevselliği temsil ederek karakterize edilen bir Java sınıfı türüdür. En yaygın biçimiyle, arabirimler, uygulaması olmayan yöntemlerden oluşan bir sınıftır.
interface Drawable {public void draw(); public void selectColor (Dize rengi); }
Arayüzler, değiştiricileri ayarlasanız da ayarlamasanız da, diğer nesnelerin onları uygulayan nesneyle etkileşim şeklini temsil ettiğinden bağımsız olarak her zaman genel ve soyuttur. Kulağa karmaşık gelebilir, ancak basittir, bir sınıf bir arabirim uyguladığında, ilgili yöntemlere bir gövde vermek zorunda kalır. Bu, bir nesne bir arabirim uyguladığı sürece, bahsedilen nesnenin bahsedilen arabirime karşılık gelen yöntemlere sahip olduğundan tamamen emin olabileceğiniz anlamına gelir.
Java'da arabirimler "implements" anahtar sözcüğüyle uygulanır ve bir sınıf bir veya daha fazla arabirimi uygulayabilir, ancak istisnasız olarak her arabirime karşılık gelen yöntemleri aşırı yüklemeye zorlanır, aksi takdirde derleyici bir hata verir.
public class Square, Drawable {public String borderColor; genel Dize dolgu rengi; public int yüksek; genel int genişliği; @Override public void draw () {System.out.println ("Genişlik" + genişlik + ", yükseklik" + yükseklik + "ve renk" + dolgu rengi ile bir kare çizilir); } @Override public void selectColor (String color) {fillcolor = color; }}
public class Line, Drawable {public String Strokcolor; uzun genel String; @Override public void draw () {System.out.println ("Bir çizgi çizin" + uzun); } @Override public void selectColor (String color) {strokecolor = color; }}
Bu durumda, arayüz, ikinci bölümde gördüğümüz polimorfizm kavramını kullanarak herhangi bir sayıda Nesneyi sorunsuz bir şekilde manipüle etmenize izin verir ve bu nesnelerin, diğer sınıfların etkileşim biçimi dışında, birbirleriyle içsel olarak ilişkili olmaları gerekmez. onlarla. Örneğimizde, daha sonra Drawable arabirimini uygulayan beşgen, manzara ve hatta ArtWork nesnelerine sahip olabilirsiniz ve bunların tümü Drawable arabirimini değiştirebilen herhangi bir sınıf tarafından işlenebilir.
java.awt.Color'ı içe aktar; java.util'i içe aktar *; public class DrawThings {// Bu sınıf rastgele çizilebilir nesneler üretir ve bunları rastgele renklerde çizer public static void main (String [] args) {List l = new ArrayList (); for (int i = 0; i0.5) {l.add (yeni Satır ()); } else {l.add (yeni Kare ()); }} for (Çizilebilir d: l) {float H, S, B; H = (kayan) Math.random (); S = (kayan) Math.random (); B = (kayan) Math.random (); Renk c = Color.getHSBColor (H, S, ; d.chooseColor (String.valueOf (c)); d. çiz (); }}}
Örnekte göreceğiniz gibi, ana yöntem, Çizilebilir nesnelerin Listesini dolduran ve listedeki nesneleri çizen olmak üzere 2 ana yönteme ayrılabilir. Arayüzü neden programlamak isteyebileceğinizi göreceğimiz bir sonraki bölüme geçmeden önce sizi bu sınıfları kullanmaya ve nasıl davrandıklarını görmeye davet ediyorum.
Sonunda bir arayüz, gerçek karşılığı ile aynıdır, klavyeniz ve fareniz, bilgisayarınızla etkileşimde bulunduğunuz arayüzlerdir, "Tıkla" veya "Esc tuşuna basın" gibi şeylerin nasıl gerçekleştirildiğine dair dahili ayrıntılar. Bilgisayarınızın arayüzü sizden gizlidir ve sizin için gerekli değildir. Önemli olan tek şey, bu arayüzü kullanarak Esc tuşuna basıp Tıklayabilmenizdir.
Arayüzün ne olduğunu gözden geçirdikten sonra, umarım bir arayüz programlamanın ne kadar önemli olduğunu anlamışsınızdır. Esasen, bir parametre olarak size aktarılacak nesne hakkında çok fazla değil, kullanacağınız arayüzü düşünerek programlarınızı oluşturmaya odaklanırsınız. Buraya kadar ele aldığımız örnek durumunda, aşağıdaki gibi yeniden yazılabilir:
java.awt.Color'ı içe aktar; java.util'i içe aktar *; public class DrawThings {// Bu sınıf rastgele çizilebilir nesneler üretir ve bunları rastgele renklerde çizer public static void main (String [] args) {List l = new ArrayList (); doldurmaListesi (l); çekmeListesi (l); } public static void fillList (Liste l) {for (int i = 0; i0.5) {l.add (yeni Satır ()); } else {l.add (yeni Kare ()); }}} public static void drawList (Liste l) {for (Çizilebilir d: l) {float H, S, B; H = (kayan) Math.random (); S = (kayan) Math.random (); B = (kayan) Math.random (); Renk c = Color.getHSBColor (H, S, ; d.chooseColor (String.valueOf (c)); d. çiz (); }}}
Kesinlikle ana yöntemin parçalarını 2 alt yönteme ayırdım, ancak bunun güzelliği, bu 2 yöntemin birbirinden bağımsızlığını sürdürmesi ve Drawable arabiriminin uygulamalarından bağımsızlığını korumasıdır. 2 yöntemden birini değiştirmek isteseydim diğeri en az etkilenmezdi, Pentagon ve ArtWork uygulamaları ortaya çıksaydı, bunları fillList (List l) yöntemini ve drawList'i oluşturma sürecinde ekleyebilirsiniz. List) yöntemi l) arayüze programlandığı için herhangi bir değişiklik gerektirmez.
+ ÖnemliHer iki yöntem de farklı sınıflara ait olabilir, farklı ortamlarda işlenebilir ve gerçekte hangi nesneyi kullandıklarını asla bilemezler, ancak Drawable arabirimini uyguladıkları sürece onu manipüle edebilecekler ve yapacaklar. bu arayüzle ilişkili 2 yöntemi yürütebilir.
Şu anda çok karmaşık göründüğünü biliyorum ama daha sonra Spring'in bir arayüze programlanan her şeyi nasıl ele aldığını göreceğiz ve hatta en-boy odaklı programlamanın ve bunu anlamanın Spring'in nasıl çalıştığını anlamamıza nasıl çok yardımcı olacağını göreceğiz.
Umarım bu eğitimlere her hafta devam ederiz, yorumlarınızı bir dahaki sefere bırakmayı unutmayın!Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.