Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1. what is State patten
- State Pattern adalah solusi untuk masalah bagaimana membuat prilaku tergantung pada state.
- Pola state ini tidak menentukan mana transisi state yang akan di definisikan.
- 2. what are their benefit
- Keuntungan dari pattern ini adalah kemudahan untuk menambah kelas baru yang berasal dari state.
- 3. what are their drawback
- Kelamahan dari state pattern adalah setiap kelas turunan dari state memiliki pengetahuan sambungan yang memperkenalkan depedensi antara subclas.
- 4. when to use it at best
- State pattern digunakan pada saat ketika kita ingin merubah akses-akses yang kita buat dengan mudah sehingga tidak banyak memodifikasi kode .
- 5. when to NOT use it
- State pattern tidak digunakan ketika kode yang kita buat berbentukkode yang tidak akan di ubah - ubah .
- import java.io.IOException;
- import java.io.InputStreamReader;
- public class StateDisc
- {
- public static void main(String[] args) throws IOException
- {
- InputStreamReader is = new InputStreamReader(System.in);
- int ch;
- Chain chain = new Chain();
- while(true)
- {
- System.out.println("\nPress Enter");
- ch = is.read();
- chain.pull();
- }
- }
- }
- class Chain
- {
- private State current;
- public Chain()
- {
- current = new Off();
- }
- public void setState(State s)
- {
- current = s;
- }
- public void pull()
- {
- current.pull(this);
- }
- }
- abstract class State
- {
- public void pull(Chain wrapper)
- {
- wrapper.setState(new Off());
- System.out.println(" turning Off");
- }
- }
- class Off extends State
- {
- public void pull(Chain wrapper)
- {
- wrapper.setState(new Low());
- System.out.println(" low speed");
- }
- }
- class Low extends State
- {
- public void pull(Chain wrapper)
- {
- wrapper.setState(new Medium());
- System.out.println(" medium speed");
- }
- }
- class Medium extends State
- {
- public void pull(Chain wrapper)
- {
- wrapper.setState(new High());
- System.out.println(" high speed");
- }
- }
- class High extends State{}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement