corak objek kosong


Dalam Corak Objek Null, objek nol menggantikan semakan untuk kejadian objek NULL. Daripada menyemak nilai nol, objek Null mencerminkan hubungan yang tidak melakukan apa-apa. Objek Null tersebut juga boleh memberikan tingkah laku lalai apabila data tidak tersedia.

Dalam corak objek kosong, kami mencipta kelas abstrak yang menentukan pelbagai operasi untuk dilakukan dan kelas entiti yang memanjangkan kelas Kami juga mencipta kelas objek kosong yang tidak melaksanakan sebarang pelaksanaan kelas. Kelas objek akan digunakan dengan lancar di mana-mana pemeriksaan nilai nol diperlukan.

Pelaksanaan

Kami akan mencipta kelas abstrak AbstractCustomer yang mentakrifkan operasi (dalam kes ini, nama pelanggan), dan melanjutkan AbstractCustomer kelas entiti kelas. Kelas kilang CustomerFactory mengembalikan objek RealCustomer atau NullCustomer berdasarkan nama yang diluluskan oleh pelanggan.

NullPatternDemo, kelas demo kami menggunakan CustomerFactory untuk menunjukkan penggunaan corak objek nol.

null_pattern_uml_diagram.jpg

Langkah 1

Buat kelas abstrak.

AbstractCustomer.java

public abstract class AbstractCustomer {
   protected String name;
   public abstract boolean isNil();
   public abstract String getName();
}

Langkah 2

Buat kelas entiti yang memanjangkan kelas di atas.

RealCustomer.java

public class RealCustomer extends AbstractCustomer {

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

NullCustomer.java

public class NullCustomer extends AbstractCustomer {

   @Override
   public String getName() {
      return "Not Available in Customer Database";
   }

   @Override
   public boolean isNil() {
      return true;
   }
}

Langkah 3

Buat Kelas CustomerFactory.

CustomerFactory.java

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

   public static AbstractCustomer getCustomer(String name){
      for (int i = 0; i < names.length; i++) {
         if (names[i].equalsIgnoreCase(name)){
            return new RealCustomer(name);
         }
      }
      return new NullCustomer();
   }
}

Langkah 4

Gunakan CustomerFactory untuk mendapatkan berdasarkan nama yang diluluskan oleh pelanggan RealCustomer atau NullCustomer objek.

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("Customers");
      System.out.println(customer1.getName());
      System.out.println(customer2.getName());
      System.out.println(customer3.getName());
      System.out.println(customer4.getName());
   }
}

Langkah 5

Sahkan output.

rreeee