diff --git a/src/main/java/core/basesyntax/DiscountStrategy.java b/src/main/java/core/basesyntax/DiscountStrategy.java new file mode 100644 index 00000000..37084498 --- /dev/null +++ b/src/main/java/core/basesyntax/DiscountStrategy.java @@ -0,0 +1,28 @@ +package core.basesyntax; + +import core.basesyntax.strategy.DiscountService; +import core.basesyntax.strategy.impl.BirthdayDiscountService; +import core.basesyntax.strategy.impl.BlackFridayDiscountService; +import core.basesyntax.strategy.impl.DefaultDiscountService; +import core.basesyntax.strategy.impl.NewYearDiscountService; + +public class DiscountStrategy { + + DiscountService getDiscountServiceBySpecialEvent(String specialEvent) { + + switch (specialEvent) { + + case "New Year": + return new NewYearDiscountService(); + case "Birthday": + return new BirthdayDiscountService(); + case "Black Friday": + return new BlackFridayDiscountService(); + default: + return new DefaultDiscountService(); + + } + + } + +} diff --git a/src/main/java/core/basesyntax/HelloWorld.java b/src/main/java/core/basesyntax/HelloWorld.java deleted file mode 100644 index 97db782b..00000000 --- a/src/main/java/core/basesyntax/HelloWorld.java +++ /dev/null @@ -1,8 +0,0 @@ -package core.basesyntax; - -/** - * Feel free to remove this class and create your own. - */ -public class HelloWorld { - -} diff --git a/src/main/java/core/basesyntax/strategy/DiscountService.java b/src/main/java/core/basesyntax/strategy/DiscountService.java new file mode 100644 index 00000000..1791c456 --- /dev/null +++ b/src/main/java/core/basesyntax/strategy/DiscountService.java @@ -0,0 +1,7 @@ +package core.basesyntax.strategy; + +public interface DiscountService { + + double getDiscount(); + +} diff --git a/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService.java b/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService.java new file mode 100644 index 00000000..cb1b4843 --- /dev/null +++ b/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService.java @@ -0,0 +1,14 @@ +package core.basesyntax.strategy.impl; + +import core.basesyntax.strategy.DiscountService; + +public class BirthdayDiscountService implements DiscountService { + + @Override + public double getDiscount() { + + return 33.0; + + } + +} diff --git a/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService.java b/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService.java new file mode 100644 index 00000000..ec72a6ae --- /dev/null +++ b/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService.java @@ -0,0 +1,14 @@ +package core.basesyntax.strategy.impl; + +import core.basesyntax.strategy.DiscountService; + +public class BlackFridayDiscountService implements DiscountService { + + @Override + public double getDiscount() { + + return 45.0; + + } + +} diff --git a/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService.java b/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService.java new file mode 100644 index 00000000..2b688d6c --- /dev/null +++ b/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService.java @@ -0,0 +1,14 @@ +package core.basesyntax.strategy.impl; + +import core.basesyntax.strategy.DiscountService; + +public class DefaultDiscountService implements DiscountService { + + @Override + public double getDiscount() { + + return 0; + + } + +} diff --git a/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService.java b/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService.java new file mode 100644 index 00000000..1ac6edab --- /dev/null +++ b/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService.java @@ -0,0 +1,14 @@ +package core.basesyntax.strategy.impl; + +import core.basesyntax.strategy.DiscountService; + +public class NewYearDiscountService implements DiscountService { + + @Override + public double getDiscount() { + + return 20.0; + + } + +}