Langsung ke konten utama

Design Pattern: State Pattern

Definisi

State Pattern adalah solusi untuk masalah bagaimana membuat perilaku tergantung pada state. Pola state ini tidak menentukan mana transisi state yang akan didefinisikan. Pilihannya adalah duam yakni: "konteks" objek atau setiap state individu berasal.
Keuntungannya adalah kemudahan untuk menambah kelas baru yang berasal dari state.
Kelemahannya adalah setiap kelas turunan dari state memliki pengetahuan sambungan yang memperkenalkan dependensi antara subclass.

Implementasi



1. Buatlah interface dengan nama PlayerState

 public interface PlayerState {       
void action(Player p);
}

2. Buatlah tiga kelas berbeda dengan state yang berbeda. Pada contoh dibawah ini saya menamai HealthyState, SurvivalState, DeadState.

 public class HealthyState implements PlayerState {  
@Override
public void action(Player p) {
p.attack();
p.fireBumb();
p.fireGunblade();
p.fireLaserPistol();
}
}
public class SurvivalState implements PlayerState {
@Override
public void action(Player p) {
p.survive();
p.firePistol();
}
}
public class DeadState implements PlayerState {
@Override
public void action(Player p) {
p.dead();
}
}

3. Buat GameContext.java

 public class GameContext {  
private PlayerState state = null;
private Player player = new Player();
public void setState(PlayerState state) {
this.state = state;
}
public void gameAction() {
state.action(player);
}
}

4. Buat GameTest.java

 public class GameTest {  
public static void main(String[] args) {
GameContext context = new GameContext();
context.setState(new HealthyState());
context.gameAction();
System.out.println("*****");
context.setState(new SurvivalState());
context.gameAction();
System.out.println("*****");
context.setState(new DeadState());
context.gameAction();
System.out.println("*****");
}
}


Output

 Attack  
Fire Bomb
Fire Gunblade
Laser Pistols
*****
Surviving!
Fire Pistol
*****
Dead! Game Over
*****

Komentar

Postingan populer dari blog ini

Analisis Sistem Informasi PERTAMINA

Analisis PIECES  Mengacu pada sistem yang ada dan selama ini digunakan dalam proses pengendalian kerja yang ada khususnya sistem pengolahan data karyawan pada PT. Pertamina, kemungkinan besar akan terjadi hasil daya yang kurang relecan dan kurang akurat. Untuk menyelesaikan permasalahan  sebagaimana disebutkan sebelumnya, maka disusun analisis yang digunakan sebagai alat ukur untuk menentukan sebuah sistem yaitu dengan menggunakan analisis PIECES ( Performance, Information, Economy, Control, Efficiency, and Service ). Jenis Analisis Permasalahan Performance and Economy Jadwal Pemesanan persediaan dilakukan berdasarkan insting dan pengecekan Tangki oleh pengawas SPBU setiap hari hal ini akan menjadi permasalahan jika pengawas berhalangan hadir atau terlambat melakukan pengecekan. Information Belum adanya sistem monitoring persediaan premium yang dapat mendukung informasi persediaan secara cepat dan akurat. Control and Efficiency Proses p...

Sistem Informasi Rental Mobil

1. USE CASE DIAGRAM  Pada gambar di atas yang bertugas menjadi aktor adalah pelanggan dan petugas. pada sistem ini pelanggan tidak masuk pada sistem, pelanggan hanya melakukan pendaftaran secara manual. Petugas lah yang nantinya akan menginputkan data pelanggan pada sistem. Petugas bertugas menginputkan data rental, data penyewaan, termasuk data pelanggan yang mendaftar untuk melakukan penyewaan dan pembayaran. 2. CLASS DIAGRAM 3. SEQUENCE DIAGRAM  - Sequence Diagram Login Petugas   Prosedur pelaksanaanya :  1. petugas memasukan username dan password pada sistem.  2. petugas masuk pada bagian kepegawaian. 3. sistem akan melakukan pengecekan apabila terjadi kesalahan akan muncul peringatan username atau password salah.  4. apabila sudah masuk ke sistem, petugas akan masuk ke manu utama form - Sequence Diagram Pendaftaran Customer  Prosedur pelaksanaannya :  1. pelanggan akan mengisi formulir pendaftaran.  2. data pelanggan berupa fisik, akan d...