Java'da Bağdaştırıcı Sınıfı nedir? Adaptör Sınıfının Avantajları ve Çeşitleri

Yayınlanan: 2021-05-19

İçindekiler

Bağdaştırıcı Sınıfı Nedir?

JAVA'da bir bağdaştırıcı sınıfı, dinleyici arabirimlerinin varsayılan uygulamasına izin verir. Dinleyici arabirimleri kavramı, Delegasyon Olay Modelinden kaynaklanmaktadır. JAVA gibi Grafik Kullanıcı Arayüzü (GUI) programlama dillerinde olayları işlemek için kullanılan birçok teknikten biridir.

GUI programlama, ağırlıklı olarak olay odaklıdır ve kullanıcı, ilgili görseller ve grafikler aracılığıyla sistemle etkileşime girer. Bu, ekrandaki fare imlecinin koordinatlarını değiştiren bir fare hareketi, bir düğmeyi tıklatması veya bir sayfayı kaydırma gibi kullanıcı tarafından başlatılan her etkinliğin bağımsız bir olay olarak kabul edildiği anlamına gelir.

Bu bağımsız olay etkinliklerinin her biri, uygulamanın kullanıcıya hangi yanıtı vermesi gerektiğini yineleyen bir kod kesimine özünde bağlıdır. Yol basit. Kullanıcı (kaynak) bir olay oluşturur ve bunu bir veya daha fazla dinleyici arabirimine gönderir. Bir olay potansiyeli alındığında, dinleyici arayüzü olayı işler ve uygun yanıtı döndürür.

Bu yol, olay işleme sürecini doğrular. Bu nedenle JAVA'daki bir bağdaştırıcı sınıfı, bir dizi yapay yönteme sahip bir arabirimi uygulamak için kullanılır. Bir programcı bir bağdaştırıcı sınıfını devralmayı seçerse, belirli bir dinleyici arabirimi altında listelenen tüm yöntemleri uygulamaya zorlanmayacaktır. Bağdaştırıcı sınıfı ayrıca alt sınıflara ayrılabilir, böylece programcı yalnızca gerekli yöntemleri geçersiz kılabilir. Başka bir deyişle, bir adaptör sınıfı kullanarak programcı, saha olaylarına kendi dinleyici arabirimini hızla oluşturabilir. Bu, kodu kaydetmeye yardımcı olur.

Bağdaştırıcı Sınıfı ile Dinleyici Arayüzü Arasındaki İlişki Nedir?

Dinleyiciler, programcı, arayüz altında listelenen yöntemlerin çoğunu kullanmayı amaçladığında kullanılır. Bir dinleyici arabirimi doğrudan bir sınıf tarafından uygulanıyorsa, bu arabirim içindeki tüm yöntemlerin uygulanması gerekir, bu da kodu makul olmayan bir şekilde büyük yapar. Bu karmaşıklık, bir bağdaştırıcı sınıfı çağrılarak çözülebilir. Bir bağdaştırıcı sınıfı, bir olayın yalnızca belirli yöntemler gerektirdiği durumlarda gerekli olduğunu kanıtlar.

Programcının yalnızca bunun bir alt sınıfını oluşturması ve bir bağdaştırıcı sınıfı kullanmak için ilgi yöntemlerini geçersiz kılması gerekir. Adaptör sınıfları bu nedenle JAVA'da birden fazla metoda sahip dinleyici arayüzleri için faydalıdır. Bunu daha iyi anlamak için MouseListener arayüzü örneğini ele alalım. Bu arayüz, farenin durumunda bir değişiklik olduğunda bildirilir. Beş yöntemi vardır, fare tıklandı, mouseExited, mouseEntered, mousePressed ve mouseReleased.

Bir olay bildirildiğinde bu yöntemlerden sadece biri gerekli bile olsa hepsinin uygulanması gerekir. İhtiyaç duyulmayan yöntemler boş bırakılır. Boş bir yöntem gövdesinin bu gereksiz uygulamasını önlemek için bir bağdaştırıcı sınıfı kullanılır.

Bağdaştırıcı Tasarım Modelini Anlama

Teknik olmayan bir tabirle, bir adaptör, tanımı gereği, iki uyumsuz arayüzün birlikte çalışmasına izin verecek şekilde yapısal olarak tasarlanmıştır. Bu nedenle bir adaptör modeli, mevcut kodlarını değiştirmeden iki uyumsuz arabirimi uyumlu hale getirebilir. Karşılık gelen arabirimler tutarsız olabilir, ancak iç işlevleri aranan gereksinimle eşleşmelidir. Bunu daha iyi açıklığa kavuşturmak için ilgili bir örneği ele alalım.

Farklı ülkelerin farklı elektrik prizlerine, voltajlara ve frekans ölçümlerine sahip olduğunun farkındayız. Bir ülkenin spesifikasyonlarına göre tasarlanmış bir cihazı başka bir ülkede kullanmamız gerekiyorsa, cihazın uyumlu olduğundan emin olmamız gerekir.

Örneğin, Birleşik Krallık'ta yaygın olarak G tipi prizler kullanılırken, ABD ve Japonya'da A tipi ve B tipi prizler ve Hindistan'da C tipi, D tipi ve M tipi prizler kullanılmaktadır. Hindistan'dan taşınan bir dizüstü bilgisayar veya mobil cihaz, bu nedenle, örneğin ABD ve Japonya'nın elektrik spesifikasyonlarıyla uyumlu olmayabilir. Bu, bağdaştırıcının amacının, uyumsuz bir kodu uyumlu bir koda dönüştürmek için gerekli hale geldiği yerdir.

Adaptör Sınıflarının Türleri

Adaptör sınıfları java'da bulunabilir. awt.the olayı, java.awt.dnd ve java.swing.event paketleri. Bu paketlerin her biri için JAVA'da karşılık gelen dinleyici arabirimleriyle birlikte standart bağdaştırıcı sınıfları aşağıda belirtilmiştir.

1. java. awt. Havva

Adaptör Sınıfı Dinleyici Arayüzü
Pencere Adaptörü Pencere Dinleyici
Anahtar Adaptörü Anahtar Dinleyici
Fare Bağdaştırıcısı Fare Dinleyici
FareMotionAdaptör FareMotionDinleyici
Odak Adaptörü Odak Dinleyici
BileşenAdaptör BileşenListener
Konteyner Adaptörü ContainerListener
HiyerarşiSınır Bağdaştırıcısı HiyerarşiSınırlarDinleyici

2. java.awt.dnd

Adaptör Sınıfı Dinleyici Arayüzü
DragSourceAdapter DragSourceListener
DragTargetAdapter DragTargetListener

3. javax.swing.event

Adaptör Sınıfı Dinleyici Arayüzü
FareGirdi Bağdaştırıcısı FareGirdiDinleyici
InternalFrameAdapter InternalFrameListener

Bunlar, ilgili Java paketlerinin Soyut Pencere Araç Takımında bulunur. Dinleyici arayüzlerinde bulunan yöntemlerin doğasını anlamak için birkaç örneği ele alalım:

  1. WindowListener arabirimi, bir pencerenin açılması ve kapatılması, bir pencerenin etkinleştirilmesi ve devre dışı bırakılması ve bir pencerenin simgeleştirilmesi ve detoksifikasyonu dahil olmak üzere pencere olaylarıyla ilgili yöntemleri tanımlar.
  2. KeyListener arabirimi, klavye bileşenleriyle etkileşime giren kullanıcı tarafından tetiklenen önemli olayları işleyen yöntemleri tanımlar.
  3. MouseListener arabirimi, bir fare kararlı olduğunda ve kullanıcının görsel çerçevesinde bileşenden çıkmak, girmek, tıklamak, basmak veya serbest bırakmakla ilgili olay potansiyelini aldığında bilgilendirilir.
  4. Bileşen Dinleyici arabirimi, bileşen olay potansiyellerini alır. Burada bir bileşen, düğmeler, onay kutuları ve kaydırma çubukları gibi kullanıcıyla etkileşim kurmak üzere tasarlanmış herhangi bir grafik nesneyi ifade eder.

Sınıf Bağdaştırıcısı ve Nesne Bağdaştırıcısı Arasındaki Fark

İşlevselliği ve esnekliği garanti etmek için JAVA gibi nesne yönelimli programlama, programcılara kalıtım ve kompozisyon gibi özellikler sunar. Belirli bir kodu, özelliklerini başka bir sınıftan devralarak yeniden kullanmayı denerseniz, oluşturduğunuz alt sınıf, tüm programın uzunluğu boyunca ana sınıfa bağlı kalacaktır.

Bu, birçok durumda sistemi giderek daha karmaşık ve daha az test edilebilir hale getirir ve çalışma zamanında işlevsellik alışverişini zahmetli bir şekilde zorlaştırır. Kompozisyonda, bir sınıf yalnızca diğerini kullanır. Arayüzler açıkça tanımlanarak ikisi arasındaki ayrıştırma daha da artırılır.

Sınıf bağdaştırıcısı ile nesne bağdaştırıcısı arasındaki tartışma bu nedenle aşağıdaki gibi çözülebilir. Sınıf Bağdaştırıcısı kalıtım kullanır ve bu nedenle yalnızca bir sınıfı sarma yeteneğine sahiptir. Bir arabirimi saramaz çünkü tanımı gereği bazı temel sınıflardan türetilmesi gerekir. Bir nesne bağdaştırıcısı, bileşimi kullanır ve bu nedenle hem sınıfları hem de arabirimleri sarma yeteneğine sahiptir. Bu, öncelikle, bileşimde her sınıf veya arabirimin özel, kapsüllenmiş bir üye olması nedeniyle elde edilir.

Adaptör Sınıfının Avantajları

  1. Bir bağdaştırıcı sınıfı, ilişkisiz sınıfların birlikte çalışmasına yardımcı olur.
  2. Bir bağdaştırıcı sınıfının kullanılmasıyla aynı sınıf birden çok şekilde kullanılabilir.
  3. Kullanıcılara uygulama geliştirmek için tak-çıkar kit seçeneği sunulur. Bu nedenle, sınıf kullanımı yüksek oranda yeniden kullanılabilir hale gelir.
  4. Sınıfların şeffaflığını arttırır.
  5. İlgili kalıpları bir sınıfa dahil etmenin bir yolunu sağlar.

Dünyanın En İyi Üniversitelerinden Online Yazılım Mühendisliği Kursları öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Çözüm

Bu makale ile JAVA'da bir adaptör sınıfının mekaniğini, adaptör sınıflarını içeren üç ana paketi ve adaptör sınıflarının programcılara faydalarını anladık. Bağdaştırıcı sınıfları, çeşitli olayları almak için soyut sınıflardır ve dinleyici nesneleri oluşturmak için bir kolaylık olarak mevcuttur. Adaptör sınıfları, farklı işlevleriyle programcılara Swing metodolojisi aracılığıyla yenilikçi olma platformu sunar.

Java becerilerinizi geliştirmek istiyorsanız, bu java projelerine el atmanız gerekir. Java, tam yığın geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim, 9+ projeler ve ödevler, IIIT-B Mezunları statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.

Java'da bağdaştırıcı sınıfı nedir?

Bağdaştırıcı sınıfı, bağdaştırıcı deseni kullanılarak tanımlanan bir sınıftır. Orijinal sınıfı değiştirmeden mevcut bir sınıfa yeni yetenekler eklemek için bir adaptör kullanılabilir. Örneğin, java.util.Scanner sınıfı java.util paketindendir. Bir dosya bir InputStream olmadığı için Scanner sınıfı bir dosyadan okuyamaz. Bir dosyadan okumak için, bir InputStream'i argüman olarak kabul eden ve işlenmiş verileri bir nesne olarak döndüren bir adaptör sınıfı oluşturuyoruz. Bağdaştırıcı kalıbı, kodunu herhangi bir şekilde değiştirmeden mevcut bir sınıfın işlevselliğini genişletmek için kullanılır.

Java'daki tasarım kalıpları nelerdir?

Tasarım deseni, yazılım tasarımında belirli bir bağlamda yaygın olarak ortaya çıkan bir soruna genel olarak yeniden kullanılabilir bir çözümdür. Doğrudan koda dönüştürülebilecek bitmiş bir tasarım değildir. Birçok farklı durumda kullanılabilecek bir sorunun nasıl çözüleceğine ilişkin bir açıklama veya şablondur. Nesne yönelimli programlamada, tasarım kalıpları, yazılım sistemlerinin tasarımını ve uygulanmasını kolaylaştıran yerleşik kurallardır. Java'da birkaç tasarım deseni vardır. Bir tasarım kalıbının başka bir dilden alınması gerekli değildir. Tasarım desenleri çok basit ve kısa bir biçimde yazılabilir.

Java'da en çok kullanılan tasarım deseni hangisidir?

Java'da birçok tasarım deseni bulacaksınız. En çok kullanılan tasarım deseni Fabrika Desenidir. Kurumsal geliştirmede birçok uygulamaya sahiptir. Uygulamada somut sınıflara bağımlılığın ortadan kaldırılmasına yardımcı olur. Size gerçek hayattan bir örnek verelim. Bir e-ticaret uygulamasında, hem test hem de üretim ortamında bir kullanıcının nesnesini oluşturma gereksiniminiz olabilir. Kullanıcı sınıfının Admin, Shopkeeper, Seller, User gibi birçok alt sınıfı olabilir. Fabrika modelindeki ortak ana yöntem şuna benzer: public class UserFactory { public static Object create () { User user = createAdmin (); // admin'e izin verilip verilmediğine bak, kullanıcıyı döndür ; // mevcut kullanıcıyı döndür } }. Burada, kullanıcı sınıfının somut sınıfa nasıl bağımlı olmadığını görün. Tam bir örnek olmasa da Fabrika düzeninin nasıl çalıştığını gösterir.