Cerpen: Seorang tukang pos diminta pulang setelah pulang dan menerima sampul berisi (surat, dokumen, cek, kartu hadiah, lamaran, surat cinta) dengan alamat yang tertulis untuk dikirimkan.
Misalkan tidak ada penutup dan meminta tukang pos untuk pulang setelah rumah dan menerima semua barang dan mengirimkannya ke orang lain, tukang pos bisa bingung.
Jadi lebih baik bungkus dengan sampul (dalam cerita kami itu adalah antarmuka) maka dia akan melakukan tugasnya dengan baik.
Sekarang tugas tukang pos adalah untuk menerima dan mengirimkan sampul saja (dia tidak akan repot dengan apa yang ada di dalam sampul).
Buat jenis yang interface
bukan tipe aktual, tetapi implementasikan dengan tipe aktual.
Untuk membuat ke antarmuka berarti komponen Anda masuk ke dalam sisa kode dengan mudah
Saya memberi Anda sebuah contoh.
Anda memiliki antarmuka AirPlane seperti di bawah ini.
interface Airplane{
parkPlane();
servicePlane();
}
Misalkan Anda memiliki metode di kelas Controller Anda seperti Planes
parkPlane(Airplane plane)
dan
servicePlane(Airplane plane)
diimplementasikan dalam program Anda. Itu tidak akan BREAK kode Anda. Maksud saya, tidak perlu berubah selama menerima argumen sebagai AirPlane
.
Karena akan menerima Airplane apapun meskipun jenis sebenarnya, flyer
, highflyr
, fighter
, dll
Juga, dalam koleksi:
List<Airplane> plane;
// Akan mengambil semua pesawatmu.
Contoh berikut akan menghapus pemahaman Anda.
Anda memiliki pesawat tempur yang mengimplementasikannya, jadi
public class Fighter implements Airplane {
public void parkPlane(){
// Specific implementations for fighter plane to park
}
public void servicePlane(){
// Specific implementatoins for fighter plane to service.
}
}
Hal yang sama untuk HighFlyer dan clasess lainnya:
public class HighFlyer implements Airplane {
public void parkPlane(){
// Specific implementations for HighFlyer plane to park
}
public void servicePlane(){
// specific implementatoins for HighFlyer plane to service.
}
}
Sekarang pikirkan kelas controller Anda menggunakan AirPlane
beberapa kali,
Misalkan kelas Controller Anda adalah ControlPlane seperti di bawah ini,
public Class ControlPlane{
AirPlane plane;
// so much method with AirPlane reference are used here...
}
Di sini keajaiban datang karena Anda dapat membuat AirPlane
instance tipe baru Anda sebanyak yang Anda inginkan dan Anda tidak mengubah kode ControlPlane
kelas.
Anda dapat menambahkan sebuah instance ...
JumboJetPlane // implementing AirPlane interface.
AirBus // implementing AirPlane interface.
Anda juga dapat menghapus instance dari tipe yang dibuat sebelumnya.