Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me

Design Pattern - Prototype



  April 14, 2019    Labels:,,,,,,,, 

Bu patern'ın ana amacı yaratılması maliyetli nesnelerin tekrar tekrar sıfırdan yaratılması yerine bir prototip nesne üzerinden yaratılmasıdır. Yaratılması maliyetli nesnelerden kasıt örneğin dış bir servise veya veritabanına bağımlı bilgi içeren bir nesnenin her seferinde yaratılması sistem dışına yapılacak çağrıları gerektirir ki bu da maliyetli bir işlemdir. Bu gibi durumlarda bir kere oluşturulmuş prototip nesnesi üzerinden klonlama işlemi ile nesne üretilir ve sistemde gereksiz zaman kaybı önlenir.

Uygulama
  • Patern'ı uygulayacağımız sınıfa Cloneable interface'ini implement edilir.
  • clone metodu override ederek ihtiyacımıza uygun yazılır.
  • Patern'ın uygulandığı sınıfın bir nesnesine ihtiyaç duyulduğu yerlerde clone metodu ile nesne yaratılır.


public class Client{

     public static void main(String []args){
        Database nesne1 = new Database();
        nesne1.setDigerBilgiler("özel bilgi nesne1");
        Database nesne2 = (Database) nesne1.clone();
        nesne2.setDigerBilgiler("özel bilgi nesne2");
     }
     
     public class Database implements java.lang.Cloneable {
         
         private String bilgi;
         private String digerBilgiler;
         
         public Database () {
             bilgi = "genel bilgi";
         }
         
         public Object clone() throws CloneNotSupportedException {
             return new Database();
         }
         
         public setDigerBilgiler (String bilgi) {
            digerBilgiler = bilgi;       
         }
         
     }
}

No comments:

Post a Comment