Latest web development tutorials

Model Obyek Null

Model kosong objek (Null Object Pola), dan objek diganti cek kosong untuk NULL contoh objek. objek Null tidak memeriksa nilai-nilai null, tetapi tidak reaksi hubungan tindakan apapun. objek Null seperti juga dapat memberikan perilaku default ketika data tidak tersedia.

model objek kosong, kita membuat sebuah entitas yang ditunjuk dari kelas abstrak dan memperpanjang kelas ini untuk melakukan berbagai operasi, tetapi juga membuat kelas tidak melakukan salah satu kelas objek kosong ini mengimplementasikan kelas objek kosong mulus digunakan dalam tempat perlu untuk memeriksa nilai null.

realisasi

Kami akan membuat tindakan kustom (dalam hal ini, nama pelanggan)AbstractCustomerkelas abstrak, dan memperpanjang kelas entitas kelasAbstractCustomer.CustomerFactory nama kelas pabrik berdasarkan pada pelanggan untuk memberikan atau kembaliRealCustomerNullCustomer objek.

NullPatternDemo,kami menunjukkan penggunaan kelasCustomerFactoryuntuk menunjukkan penggunaan model objek kosong.

pola Obyek Null diagram UML

Langkah 1

Buat kelas abstrak.

AbstractCustomer.java

kelas abstrak publik AbstractCustomer {
   String nama dilindungi;
   public abstract boolean isNil ();
   public abstract String getName ();
}

Langkah 2

Buat memperluas kelas entitas di atas kelas.

RealCustomer.java

public class RealCustomer meluas AbstractCustomer {

   RealCustomer publik (String nama) {
      this.name = nama;		
   }
   
   @ Override
   public String getName () {
      Nama kembali;
   }
   
   @ Override
   publik isNil boolean () {
      return false;
   }
}

NullCustomer.java

public class NullCustomer meluas AbstractCustomer {

   @ Override
   public String getName () {
      kembali "Tidak Tersedia di Pelanggan Database";
   }

   @ Override
   publik isNil boolean () {
      kembali benar;
   }
}

Langkah 3

Membuat kelasCustomerFactory.

CustomerFactory.java

public class CustomerFactory {
	
   public static String akhir [] nama = { "Rob", "Joe", "Julie"};

   public static AbstractCustomer getCustomer (String nama) {
      for (int i = 0; i <names.length; i ++) {
         jika (nama [i] .equalsIgnoreCase (nama)) {
            kembali RealCustomer baru (nama);
         }
      }
      kembali NullCustomer baru ();
   }
}

Langkah 4

GunakanCustomerFactory,berdasarkan nama klien untuk lulus untuk mendapatkanRealCustomeratauNullCustomerobjek.

NullPatternDemo.java

public class NullPatternDemo {
   public static void main (String [] args) {

      AbstractCustomer customer1 = CustomerFactory.getCustomer ( "Rob");
      AbstractCustomer customer2 = CustomerFactory.getCustomer ( "Bob");
      AbstractCustomer customer3 = CustomerFactory.getCustomer ( "Julie");
      AbstractCustomer customer4 = CustomerFactory.getCustomer ( "Laura");

      System.out.println ( "Pelanggan");
      System.out.println (customer1.getName ());
      System.out.println (customer2.getName ());
      System.out.println (customer3.getName ());
      System.out.println (customer4.getName ());
   }
}

Langkah 5

Verifikasi output.

pelanggan
merampok
Tidak Tersedia di Database Pelanggan
Julie
Tidak Tersedia di Database Pelanggan