Adapter Pattern adalah adalah salah satu pattern yang termasuk ke dalam
structural pattern. Adapter pattern berfungsi untuk menggunakan kembali method
yang sudah digunakan pada kelas sebelumnya, terhadap kelas baru yang akan kita
buat.
Apabila dalam sebuah project terdapat beberapa objek yang sama, maka
Adapter ini mempunyai cara untuk meng-akses objek – objek tersebut.Dalam Adapter Pattern diharapkan dapat mengkonversi interface dari sebuah kelas
menjadi antarmuka klien satu dengan yang lainnya. Akan tetapi adapter
memungkinkan kelas hanya bekerja dengan suatu class yang memiliki type yang
sama karena interface yang dimaksud tidak kompatibel dengan class yang sedang
di akses. Sehingga diperlukan suatu space kelas yang ada dengan interface yang
baru.Dalam hal ini sebuah space yang terdiri dari komponen class-class menawarkan
fungsionalitas yang meyakinkan bahwa end-user ingin menggunakan atau mengakses
kembali objek-objek tersebut kembali.STRUKTURADAPTER PATTERN |
Konteks:
1.
Diinginkan untuk menggunakan suatu
class dengan antarmuka (method-method public) tertentu tanpa mengubah definisi
class tersebut. Class ini kita sebut adaptee.
2.
Konteks permasalahan dimana kita
ingin menggunakan class ini membutuhkan antarmuka yang berbeda dari yang
dimiliki class adaptee. Antarmuka yang diperlukan untuk ini kita sebut target.
3.
Antarmuka untuk target dan antarmuka
yang dimiliki adaptee secara konsep berkaitan.
Solusi:
1.
Antarmuka yang dibutuhkan client (target)
didefinisikan sebagai interface dengan method-method yang dibutuhkan untuk
menyelesaikan tugas.
2.
Definisikan sebuah class adapter
yang mengimplementasikan interface target ini.
3.
Class adapter memiliki referensi
terhadap objek adaptee (relasi compose a.k.a HAS_A).
4.
Class adapter menerjemahkan method
yang dideklarasikan pada interface target ke dalam method dari adaptee.
5.
Client membungkus objek adaptee ke dalam objek
adapter. Client melaksanakan tugasnya dengan memanggil method adapter, dan
adapter menerjemahkannya dengan memanggil method adaptee yang bersesuaian.
contoh :
using System;
namespace adapter
{
class Baru
{
public void Matkul_1()
{
Console.WriteLine("...Software
Modelling...");
}
}
class Lama
{
public virtual void Matkul_2()
{
Console.WriteLine("..Web
Fundamental..");
}
}
class adapter
: Lama
{
private Baru
bb = new Baru();
public override void Matkul_2()
{
bb.Matkul_1();
}
}
class Program
{
public static void Main(string[]
args)
{
Console.WriteLine("Mata
kuliah yang akan diajar : ");
Lama
la = new adapter();
la.Matkul_2();
Console.WriteLine();
Console.Write("Press
any key to continue . . . ");
Console.ReadKey(true);
}
}
}
No comments:
Post a Comment