We have an interface called discount strategy, that calculates discounts for a simple parking management software. It has two sub-classes that implement different discount strategies.  1. DUAffilatedFriday discounts - make discounts for DUAffilated car type on Fridays 2. SUVFriday discounts - make discounts for SUV car type on Fridays These two classes check the car type and day of the week and implement a certain discount strategy. 1. Use a factory pattern to reimplement the entire code as-is.  2. Use a main method to test your code

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

We have an interface called discount strategy, that calculates discounts for a simple parking management software. It has two sub-classes that implement different discount strategies. 

1. DUAffilatedFriday discounts - make discounts for DUAffilated car type on Fridays

2. SUVFriday discounts - make discounts for SUV car type on Fridays

These two classes check the car type and day of the week and implement a certain discount strategy.

1. Use a factory pattern to reimplement the entire code as-is. 

2. Use a main method to test your code

NOte - Use java to write your code

Code

DiscountStrategy.java

import java.time.*;

interface DiscountStrategy{

public String getStrategyName();

public double getDiscount(String CarType, LocalDateTime date);
}

 

DUAffilatedFridayDiscounts.java

import java.time.*;

public class DUAffilatedFridayDiscounts implements DiscountStrategy{

// setting default value of discount to 0.0
private double discountPercentage = 0.0;

private boolean checkDate(LocalDateTime date){
return "Friday".equals(date.getDayOfWeek().toString());
}

private boolean checkCarType(String CarType){
return CarType.compareTo("DuAffilated") == 0;
}

@Override
public String getStrategyName(){
return "DUAffilatedFridayDiscounts";
}

@Override
public double getDiscount(String CarType, LocalDateTime date){
if(checkDate(date) && checkCarType(CarType))
discountPercentage= 5.6;
return discountPercentage;
}
}

 

SUVFridayDiscounts.java

import java.time.*;

public class SUVFridayDiscounts implements DiscountStrategy{

// setting default value of discount to 0.0
private double discountPercentage = 0.0;

private boolean checkDate(LocalDateTime date){
return "Friday".equals(date.getDayOfWeek().toString());
}

private boolean checkCarType(String CarType){
return CarType.compareTo("SUV") == 0;
}

@Override
public String getStrategyName(){
return "DUAffilatedFridayDiscounts";
}

@Override
public double getDiscount(String CarType, LocalDateTime date){
if(checkDate(date) && checkCarType(CarType))
discountPercentage= 10.5;
return discountPercentage;
}
}

Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY