Pola Desain - Pola Objek Nol
Dalam pola Objek Null, objek null menggantikan pemeriksaan instance objek NULL. Alih-alih meletakkan if check untuk nilai null, Objek Null mencerminkan hubungan tidak melakukan apa-apa. Objek Null tersebut juga dapat digunakan untuk menyediakan perilaku default jika data tidak tersedia.
Dalam pola Objek Null, kita membuat kelas abstrak yang menentukan berbagai operasi yang harus dilakukan, kelas konkret yang memperluas kelas ini dan kelas objek null yang tidak menyediakan implementasi apa pun dari kelas ini dan akan digunakan tanpa tujuan di mana kita perlu memeriksa nilai null.
Penerapan
Kita akan membuat kelas abstrak AbstractCustomer yang mendefinisikan operasi. Di sini nama pelanggan dan kelas beton yang memperluas kelas AbstractCustomer . CustomerFactory kelas pabrik dibuat untuk mengembalikan objek RealCustomer atau NullCustomer berdasarkan nama pelanggan yang diteruskan kepadanya.
NullPatternDemo , kelas demo kami, akan menggunakan CustomerFactory untuk mendemonstrasikan penggunaan pola Objek Null.
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 beton yang memperluas 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 objek RealCustomer atau NullCustomer berdasarkan nama pelanggan yang diteruskan kepadanya.
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
Verifikasi hasilnya.
Customers
Rob
Not Available in Customer Database
Julie
Not Available in Customer Database