Pengertian dan Contoh Membuat Java Proxy Pattern

 





Proxy pattern adalah design pattern dimana ada sebuah class yang dimana class tersebut mempresentasikan fungsionalitas class yang lain. Pattern ini mewakili fungsionalitas objek lain yang seolah-olah class tersebut lah yang melakukannya. Proxy pattern ini termasuk ke dalam Structural Pattern.

Berikut ini kami berikan dua contoh pembuatan Proxy Pattern dimana dalam perogram pertama adalah program pengaksesan ke sebuah folder, sedangkan program yang kedua adalah program penampil gambar. Kedua program tersebut memiliki kesamaan yaitu dimana masing-masing kelas proxy-nya mempersentasikan fungsionalitas kelas yang lain.

Note : Bagi pengguna mobile, mohon aktifkan JavaScript dan matikan fitur Google Web Light untuk melihat kode berikut secara keseluruhan.




 

Contoh Pertama :



  1. Buat interface IFolder.java

package main;

public interface IFolder {
    
    public void performOperations();
    
}


  2. Buat class User.java

package main;

class User {
    
    String userName;
    String password;
    
    public User(String username, String password) {
        this.userName = username;
        this.password = password;
    }
    
    public String getUsername(){
        return userName;
    }
    
    public String getPassword() {
        return password;
    }
    
}



  3. Buat class Folder.java implements ke IFolder.java

package main;

public class Folder implements IFolder {

    @Override
    public void performOperations() {
        System.out.println("Kamu sekarang sedang mengakses folder .... ");
    }
    
}


  4. Buat class FolderFroxy.java implements IFolder.java

package main;

public class FolderFroxy implements IFolder{

    User user;
    Folder folder;
    
    public FolderFroxy(User user) {
        this.user = user;
    }
    
    @Override
    public void performOperations() {
        if(user.getUsername().equalsIgnoreCase("leman") && user.getPassword().equals("password")){
            folder = new Folder();
            folder.performOperations();
        }else{
            System.out.println("Kamu tidak diberi ijin untuk mengakses folder ini ....");
        }
    }
    
}



  5. Buat class Main.java

package main;

public class Main {
    
    public static void main(String[] args){
        
        System.out.println("Ketika username dan password yang kamu inputkan benar : ");
        User user = new User("leman","password");
        FolderFroxy folderFroxy = new FolderFroxy(user);
        folderFroxy.performOperations();
        
        System.out.println();
        
        System.out.println("Ketika username atau password yang kamu inputkan salah :");
        User user2 = new User("abcd","abcd");
        FolderFroxy folderFroxy2 = new FolderFroxy(user2);
        folderFroxy2.performOperations();
        
        
    }
}




  6. Verifikasi Output :

Ketika username dan password yang kamu inputkan benar : 
Kamu sekarang sedang mengakses folder .... 

Ketika username atau password yang kamu inputkan salah :
Kamu tidak diberi ijin untuk mengakses folder ini ....





 

Contoh Kedua :



  1. Buat interface Image.java

package main;

public interface Image {
    void dispalay();
}


  2. Buat class ProxyImage.java implements ke Image.java

package main;

public class ProxyImage implements Image{

    private RealImage realimage;
    private String fileName;
    
    public ProxyImage(String fileName){
        this.fileName = fileName;
    }
    
    @Override
    public void dispalay() {
        if(realimage == null){
            realimage = new RealImage(fileName);
        }
        realimage.dispalay();
    }
    
}


  3. Buat class RealImage.java implements Image.java

package main;

public class RealImage implements Image {

    private String fileName;
    
    public RealImage(String fileName){
        this.fileName = fileName;
        loadFromDisk(fileName);
    }
    
    @Override
    public void dispalay() {
        System.out.println("Menampilkan "+fileName);
    }
    
    private void loadFromDisk(String fileName){
        System.out.println("Loading "+fileName);
    }
    
}



  4. Buat class Test.java

package main;

public class Test {
    
    public static void main(String[] args){
        Image image = new RealImage("image_test.jpg");
        
        //Image dibuka dari disk
        image.dispalay();
        System.out.println("");
        
        //image bukan dibuka dari disk
        image.dispalay();
        
    }
    
}



  5. Verifikasi Output :

Loading image_test.jpg
Menampilkan image_test.jpg

Menampilkan image_test.jpg


DOWNLOAD  Sample Project












Baca Juga : 
 


Entri Sebelumnya :
  Java Flyweight Pattern




Sumber :
wikipedia.com
tutorialpoint.com
java2blog.com


Pengertian dan Contoh Membuat Java Proxy Pattern 4.5 5 Ardyn Sulaeman Proxy pattern adalah design pattern dimana ada sebuah class yang dimana class tersebut mempresentasikan fungsionalitas class yang lai...


No comments:

Post a Comment

Powered by Blogger.