Advertisement
Rahmadnet

State Pettern

Mar 1st, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.96 KB | None | 0 0
  1. 1. what is State patten
  2.     State Pattern adalah solusi untuk masalah bagaimana membuat prilaku tergantung pada state.
  3. Pola state ini tidak menentukan mana transisi state yang akan di definisikan.
  4.  
  5. 2. what are their benefit
  6.     Keuntungan dari pattern ini adalah kemudahan untuk menambah kelas baru yang berasal dari state.
  7.  
  8. 3what are their drawback
  9.     Kelamahan dari state pattern adalah setiap kelas turunan dari state memiliki pengetahuan sambungan yang memperkenalkan depedensi antara subclas.
  10.  
  11. 4. when to use it at best
  12.     State pattern digunakan pada saat ketika kita ingin merubah akses-akses yang kita buat dengan mudah sehingga tidak banyak memodifikasi kode .
  13.  
  14. 5. when to NOT use it
  15.     State pattern tidak digunakan ketika kode yang kita buat berbentukkode yang tidak akan di ubah - ubah .
  16.    
  17. import java.io.IOException;
  18. import java.io.InputStreamReader;
  19.  
  20. public class StateDisc
  21. {
  22.     public static void main(String[] args) throws IOException
  23.     {  
  24.         InputStreamReader is = new InputStreamReader(System.in);
  25.        
  26.         int ch;
  27.        
  28.         Chain chain = new Chain();
  29.        
  30.         while(true)
  31.         {
  32.             System.out.println("\nPress Enter");
  33.             ch = is.read();
  34.             chain.pull();
  35.         }
  36.     }
  37. }
  38.  
  39. class Chain
  40. {
  41.     private State current;
  42.     public Chain()
  43.     {
  44.         current = new Off();
  45.     }
  46.     public void setState(State s)
  47.     {
  48.         current = s;
  49.     }
  50.     public void pull()
  51.     {
  52.         current.pull(this);
  53.     }
  54. }
  55.  
  56. abstract class State
  57. {
  58.     public void pull(Chain wrapper)
  59.     {
  60.         wrapper.setState(new Off());
  61.         System.out.println("    turning Off");
  62.     }
  63. }
  64.  
  65. class Off extends State
  66. {
  67.     public void pull(Chain wrapper)
  68.     {
  69.         wrapper.setState(new Low());
  70.         System.out.println("    low speed");
  71.        
  72.     }
  73. }
  74.  
  75. class Low extends State
  76. {
  77.     public void pull(Chain wrapper)
  78.     {
  79.         wrapper.setState(new Medium());
  80.         System.out.println("    medium speed");
  81.     }
  82. }
  83.  
  84. class Medium extends State
  85. {
  86.     public void pull(Chain wrapper)
  87.     {
  88.         wrapper.setState(new High());
  89.         System.out.println("    high speed");
  90.     }
  91. }
  92.  
  93. class High extends State{}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement