คุณอาจใช้การเริ่มต้นขี้เกียจ
ในการเขียนโปรแกรมคอมพิวเตอร์การเริ่มต้นขี้เกียจคือชั้นเชิงการหน่วงเวลาการสร้างวัตถุการคำนวณค่าหรือกระบวนการที่มีราคาแพงอื่น ๆ จนกระทั่งจำเป็นต้องมีครั้งแรก
ด้วยวิธีนี้คุณจะหลีกเลี่ยงการมีเพศสัมพันธ์ชั่วคราวซึ่งหมายความว่าผู้บริโภคในชั้นเรียนของคุณจะต้องเรียกวิธีการบางอย่างตามลำดับที่แน่นอน ต้องโทรstart()
ก่อนเป็นวิธีที่จะต้องรู้วิธีการทำงานของชั้นเรียนภายในซึ่งไม่ดีเพราะคุณอาจเปลี่ยนที่ในอนาคต
ชะลอการเริ่มต้นที่มีราคาแพงจนกว่าจะจำเป็นครั้งแรก ..
ตัวอย่าง:
public class FooClass{
private ExpensiveResource resource;
private CheapResource cheap;
public FooClass(String someParameter){
// constructor: initialize CheapResource cheap
// but NOT ExpensiveResource resource
}
public ExpensiveResource getExpensiveResource(){
if (resource == null) {
this.initializeExpensiveResource();
}
return this.resource
}
public String getExpensiveResourceName(){
if (resource == null) {
this.initializeExpensiveResource();
}
return this.resource.getName();
}
public CheapResource getCheapResource(){
return this.cheap;
}
private initializeExpensiveResource(){
// do expensive initialization of field "resource"
}
}
public class Test{
public static void main (String args[]){
FooClass foo = new FooClass("some string");
CheapResource cr = foo.getCheapResource();
String s = foo.getExpensiveResourceName();
// just now is the expensive resource initialized
}
}
start
และตัวสร้าง? ฯลฯ ...