Rumah  >  Artikel  >  Java  >  negeri

negeri

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-09-22 22:15:32657semak imbas

negeri

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn