Guest User

Untitled

a guest
Jun 20th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. Ride
  2.  
  3. public class Ride {
  4. private final int passengers;
  5. private final int distance;
  6. private final int duration;
  7. private final Tariff tariff;
  8. public Ride (int passengers,int distance,int duration,Tariff tariff) {
  9. this.passengers = passengers;
  10. this.distance = distance;
  11. this.duration = duration;
  12. this.tariff = tariff;
  13. }
  14. public int getPassengers() {
  15. return passengers;
  16. }
  17. public int getDistance() {
  18. return distance;
  19. }
  20. public int getDuration() {
  21. return duration;
  22. }
  23. public long getPrice() {
  24. return tariff.calculatePrice(this);
  25. }
  26. @Override
  27. public String toString() {
  28. return "Ride{"+"passengers=" + passengers+",distance=" + distance +",duration=" + duration+",tariff="+tariff+'}';
  29.  
  30. }
  31. }
  32.  
  33.  
  34.  
  35. public class FamilyTariff implements Tariff{
  36.  
  37. @Override
  38. public long calculatePrice(Ride ride) {
  39. return 50+20*ride.getDistance()/ride.getPassengers();
  40. }
  41.  
  42. }
  43.  
  44.  
  45. import java.util.ArrayList;
  46. import java.util.List;
  47. public class RidesHistory {
  48. private final List<Ride>rides = new ArrayList<>();
  49. public void addRide(Ride ride) {
  50. rides.add(ride);
  51. }
  52. public long getTotalPrice() {
  53. long total = 0;
  54. for (Ride ride : rides) {
  55. total+=ride.getPrice();
  56. }
  57. return total;
  58. }
  59. @Override
  60. public String toString() {
  61. return "RidesHistory{"+"rides="+ rides+'}';
  62. }
  63. }
  64.  
  65.  
  66.  
  67. public class StandartTariff implements Tariff {
  68.  
  69. @Override
  70. public long calculatePrice(Ride ride) {
  71. return 30+5*ride.getDistance()+2*ride.getDuration();
  72. }
  73.  
  74. }
  75.  
  76.  
  77. public interface Tariff {
  78. long calculatePrice(Ride ride);
  79. }
  80.  
  81.  
  82.  
  83. public class TaxiRunner {
  84.  
  85. public static void main(String[] args) {
  86. Tariff familytariff = new FamilyTariff();
  87. Tariff standarttariff = new StandartTariff();
  88. Ride ride1 = new Ride(4, 15, 40, familytariff);//125
  89. Ride ride2 = new Ride(1,20,55,standarttariff);//240
  90. RidesHistory ridesHistory = new RidesHistory();
  91. ridesHistory.addRide(ride1);
  92. ridesHistory.addRide(ride2);
  93. System.out.println("One:"+ride1.getPrice());
  94. System.out.println("Two:"+ride2.getPrice());
  95. }
  96.  
  97. }
Add Comment
Please, Sign In to add comment