Guest User

Untitled

a guest
Jun 23rd, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. public class RadarSimulator {
  2.  
  3. public static void main(String[] args) {
  4.  
  5. Vehicle v = new Ferrari();
  6. v = new RadarDetecting(v);
  7.  
  8. v.setSpeed(100);
  9.  
  10. RadarTrap r = new RadarTrap();
  11. r.enter(v);
  12. r.checkForSpeeders();
  13. }
  14. }
  15.  
  16. ------------------------------------------------
  17.  
  18. //import java.util.Observable;
  19. import java.util.Iterator;
  20. //import java.util.Observer;
  21.  
  22. public class RadarTrap { //extends Observable implements Observer {
  23.  
  24. private int SPEED_LIMIT = 65;
  25. private List<Vehicle> vehicles = new SinglyLinkedList<Vehicle>();
  26.  
  27. public void enter(Vehicle v) {
  28. vehicles.add(v);
  29. }
  30.  
  31. public int measureSpeed(Vehicle v) {
  32. v.illuminated(this);
  33. return v.getSpeed();
  34. }
  35.  
  36. public void checkForSpeeders() {
  37.  
  38. Iterator<Vehicle> it = vehicles.iterator();
  39.  
  40. while (it.hasNext()) {
  41. Vehicle v = it.next();
  42. if (measureSpeed(v) > SPEED_LIMIT) {
  43. v.getTicketed();
  44. }
  45. }
  46. }
  47. /*
  48. public void update(Observable o, Object obj) {
  49. if (o instanceof Vehicle) {
  50.  
  51. }
  52. }
  53. */
  54. }
  55.  
  56.  
  57. ------------------------------------------------
  58.  
  59. //import java.util.Observable;
  60.  
  61. public abstract class Vehicle { //extends Observable {
  62.  
  63. RadarBehavior radarBehavior;
  64.  
  65. int speed = 0;
  66.  
  67. public int getSpeed() {
  68. return speed;
  69. }
  70.  
  71. /*
  72. public void statusChanged() {
  73. System.out.println("Speed changed");
  74. setChanged();
  75. notifyObservers();
  76. }
  77. */
  78.  
  79. public void setSpeed(int speed) {
  80. this.speed = speed;
  81. //statusChanged();
  82. }
  83.  
  84. public void getTicketed() {
  85. System.out.println("Ticket");
  86. }
  87.  
  88. public void illuminated(RadarTrap radarTrap) {
  89. //radarBehavior.react();
  90. System.out.println("Illuminated");
  91. }
  92. }
  93.  
  94.  
  95. ------------------------------------------------
  96.  
  97. public class Ferrari extends Vehicle {
  98.  
  99. public Ferrari() {
  100. radarBehavior = new DoNothing();
  101. }
  102. }
  103.  
  104. ------------------------------------------------
  105.  
  106. public interface RadarBehavior {
  107. public void react();
  108.  
  109. }
  110.  
  111. ------------------------------------------------
  112.  
  113. public class DoNothing implements RadarBehavior {
  114. public void react() {
  115. System.out.println("Ignoring");
  116. }
  117. }
Add Comment
Please, Sign In to add comment