Rumah > Java > javaTutorial > negeri

negeri

Mary-Kate Olsen
Lepaskan: 2024-09-22 22:15:32
asal
758 orang telah melayarinya

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);
}
Salin selepas log masuk

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";
    } 
}

Salin selepas log masuk

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());
    }
}
Salin selepas log masuk

output:

Player is in Startnegeri
Start negeri
Player is in Endnegeri
End negeri
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan