Negeri ialah salah satu daripada corak reka bentuk Tingkah laku, Dalam hal ini tingkah laku kelas berubah berdasarkan keadaannya.
Konsep utama:
Konteks: Kelas/objek yang tingkah lakunya berubah berdasarkan keadaan
Nyatakan: keadaan abstrak
Keadaan Konkrit: mewakili pelbagai keadaan, yang mengubah tingkah laku kelas Konteks.
Mari kita fahami ini dengan contoh:
negeri.java
public interface negeri { public void doAction(Context context); }
Pelaksanaan Konkrit Negara
public class Startnegeri implements negeri { private Context context; public Startnegeri(){} @Override public void doAction(Context context){ this.context = context; this.context.setnegeri(this); System.out.println("Player is in Startnegeri"); } public String toString(){ return "Start negeri"; } } public class Endnegeri implements negeri { private Context context; public Endnegeri(){} @Override public void doAction(Context context){ this.context = context; this.context.setnegeri(this); System.out.println("Player is in Endnegeri"); } public String toString(){ return "End negeri"; } }
Utama
public class Main { public static void main(String args[]){ Context context = new Context(); negeri state = new Startnegeri(); state.doAction(context); //current state System.out.println(context.getnegeri().toString()); negeri state2 = new Endnegeri(); state2.doAction(context); //new negeri System.out.println(context.getnegeri().toString()); } }
output:
Player is in Startnegeri Start negeri Player is in Endnegeri End negeri
nota: Kod di atas mengikut prinsip pepejal ISP, LSP, SRP, OCP
Atas ialah kandungan terperinci negeri. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!