Anda di halaman 1dari 15

Proxy Pattern

By :
Nauval Ariq Azmi Rosyadi 10151036
Definition and Explanation

Proxy pattern adalah sebuah pola desain class dimana di dalamnya terdapat
sebuah reference ke sebuah class yang jauh lebih complek atau berada ditempat
lain. Proxy pattern untuk object yang jauh lebih komplek mirip dengan singleton
cuman bedanya kalo singleton mengacu ke dirinya sendiri kalo proxy pattern ke
class dengan tipe lain. Atau bisa juga, pola yang merancang suatu objek mewakili
kontrol atau akses objek lain bertindak seolah-oleh objek tersebut melakukannya.

Dalam pola proxy, kelas merupakan fungsi dari kelas lain. Jenis pola desain
berada di bawah pola struktural.
Dalam pola proxy, kita membuat objek memiliki objek asli untuk antarmuka fungsi
untuk dunia luar
Proxy pattern is used when:

1. class kompleks hanya boleh ada 1 buah dalam seluruh system (bukan
applikasi saja).
2. class complek berada di entitas lain ( vm lain, pc lain, proses lain).
Pola desain Proxy berlaku jika ada kebutuhan untuk mengontrol akses ke sebuah
Object, serta ketika ada kebutuhan untuk referensi canggih untuk sebuah Object.
Situasi umum di mana pola proxy yang berlaku adalah:
1. Proxy Virtual
2. Proxy Remote
3. Proxy Perlindungan
4. Refrensi Start
Proxy Virtual

Menunda penciptaan dan inisialisasi obyek mahal sampai dibutuhkan, di mana


objek diciptakan pada permintaan (Misalnya menciptakan objek RealSubject
hanya ketika metode doSomething dipanggil).
Proxy Remote

Menyediakan representasi lokal untuk sebuah benda yang berada dalam ruang
alamat yang berbeda. Sebuah contoh umum adalah Java RMI objek tulisan
rintisan. Tujuan tulisan rintisan bertindak sebagai proxy mana invoking metode
pada stub akan menyebabkan stub untuk berkomunikasi dan memanggil metode
pada remote object (disebut skeleton) menemukan pada mesin yang berbeda.
Proxy Perlindungan

Dimana proxy mengontrol akses ke metode RealSubject, dengan memberikan


akses ke beberapa objek sementara menolak akses kepada orang lain.
Referensi Smart

Menyediakan akses yang canggih untuk benda-benda tertentu seperti pelacakan


jumlah referensi ke sebuah obyek dan menolak akses jika sejumlah tertentu
tercapai, serta memuat objek dari database ke dalam memori pada permintaan.
Class diagram
Explanation Class Diagram

Kita akan membuat sebuah antarmuka Image dan kelas konkret


mengimplementasikan interfaceImage. ProxyImage adalah kelas proxy untuk
mengurangi jejak memori RealImage objek pemuatan.
ProxyPatternDemo, kelas demo kami, akan menggunakan ProxyImage untuk
mendapatkan obyek Image untuk memuat dan menampilkan karena kebutuhan.
Implementation in Java Code
Step 1

public interface Image {


void display();
}
Step 2

public class RealImage implements Image {


private String fileName;
public RealImage(String fileName){
this.fileName = fileName;
loadFromDisk(fileName);
}
@Override
public void display() {
System.out.println("Displaying " + fileName);
}
private void loadFromDisk(String fileName){
System.out.println("Loading " + fileName);
}
}
Step 3

public class ProxyImage implements Image{


private RealImage realImage;
private String fileName;
public ProxyImage(String fileName){
this.fileName = fileName;
}
@Override
public void display() {
if(realImage == null){
realImage = new RealImage(fileName);
}
realImage.display();
}
}
Step 3

public class ProxyPatternDemo {

public static void main(String[] args) {


Image image = new ProxyImage("test_10mb.jpg");
//image will be loaded from disk
image.display();
System.out.println("");
//image will not be loaded from disk
image.display();
}
}
Output from Code

Anda mungkin juga menyukai