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.
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