Sunday, November 27, 2016

Proxy Design Pattern

Pola desain atau pola rancangan adalah sebuah istilah di dalam rekayasa perangkat lunak yang mengacu pada solusi umum yang bisa dipergunakan kembali atau berulang-ulang untuk menyelesaikan masalah-masalah yang umum terjadi dalam konteks tertentu atau khusus yang ditemui pada desain perangkat lunak. Sebuah pola desain yang sudah terbentuk bukan berarti desain tersebu


Dalam pemrograman komputer, pola proxy adalah pola desain perangkat lunak. Proxy dalam bentuk yang paling umum adalah fungsi kelas sebagai sebuah antarmuka untuk sesuatu yang lain. Proxy bisa antarmuka untuk apa saja: koneksi jaringan, sebuah objek besar di memori, file, atau beberapa sumber daya lain yang mahal atau tidak mungkin untuk menduplikasi.
Contoh implementasi

Step 1
membuat antarmuka

public interface Image {
   void display();
}

Step 2
membuat kelas konkri


RealImage.java
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);
   }
}
ProxyImage.java
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
menggunakan Proxyimage untuk mendapatkan objek dar kelas realimage ketika dbutuhkan

ProxyPatternDemo.java
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();  
   }
}
Step 4
Output
Loading test_10mb.jpg
Displaying test_10mb.jpg

Displaying test_10mb.jpg

sumber
https://id.wikipedia.org/wiki/Pola_desain
https://nchy22.wordpress.com/2012/05/14/abstract-factor/
https://www.tutorialspoint.com/design_pattern/proxy_pattern.htm

0 comments:

Post a Comment