Juga disebut Pola Mesin Negara Dengan mendefinisikan kelas-kelas negara yang berbeda untuk merangkum perilaku yang terkait dengan negara-negara tertentu, dan mentransfer logika penilaian negara ke serangkaian kelas yang mewakili negara-negara yang berbeda, logika penilaian yang kompleks disederhanakan.
Pola keadaan memisahkan keadaan dan perilaku, memungkinkan suatu objek mengubah perilakunya ketika keadaan internalnya berubah.
Setiap negara bagian berhubungan dengan subkelasnya, sehingga mendistribusikan logika transisi negara ke subkelas negara bagian, sehingga mengurangi saling ketergantungan.
Klien biasanya tidak berinteraksi dengan objek status secara langsung, tetapi berinteraksi dengan objek status melalui kelas lingkungan (Konteks).
Adegan yang berlaku
Perilaku suatu objek bergantung pada statusnya, dan objek tersebut harus mengubah perilakunya saat runtime berdasarkan status tersebut.
Suatu operasi berisi struktur multi-cabang yang sangat besar, dan cabang-cabang ini ditentukan oleh keadaan objek.
Contoh standar
Dalam diagram struktur pola keadaan, biasanya berisi peran berikut:
Konteks (kelas lingkungan): Disebut juga kelas konteks, ini adalah objek dengan banyak status. Pertahankan instance kelas keadaan abstrak State di kelas lingkungan, yang mendefinisikan keadaan saat ini.
Negara (kelas keadaan abstrak): digunakan untuk mendefinisikan antarmuka untuk merangkum perilaku yang terkait dengan keadaan tertentu dari kelas lingkungan. Metode yang sesuai dengan berbagai keadaan dideklarasikan di kelas keadaan abstrak dan diimplementasikan dalam subkelas.
ConcreteState (kelas keadaan beton): Ini adalah subkelas dari kelas keadaan abstrak. Setiap subkelas mengimplementasikan perilaku yang terkait dengan keadaan kelas lingkungan.