From dd1d31e8c3dce190bfdced408f906e14b1900d38 Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Thu, 2 Apr 2026 13:02:42 +0300 Subject: [PATCH 1/8] 1 --- .../java/core/basesyntax/DiscountStrategy | 21 +++++++++++++++++++ src/main/java/core/basesyntax/HelloWorld.java | 8 ------- .../core/basesyntax/strategy/DiscountService | 5 +++++ .../strategy/impl/BirthdayDiscountService | 8 +++++++ .../strategy/impl/BlackFridayDiscountService | 8 +++++++ .../strategy/impl/DefaultDiscountService | 8 +++++++ .../strategy/impl/NewYearDiscountService | 8 +++++++ 7 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 src/main/java/core/basesyntax/DiscountStrategy delete mode 100644 src/main/java/core/basesyntax/HelloWorld.java create mode 100644 src/main/java/core/basesyntax/strategy/DiscountService create mode 100644 src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService create mode 100644 src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService create mode 100644 src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService create mode 100644 src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService diff --git a/src/main/java/core/basesyntax/DiscountStrategy b/src/main/java/core/basesyntax/DiscountStrategy new file mode 100644 index 00000000..620ac80a --- /dev/null +++ b/src/main/java/core/basesyntax/DiscountStrategy @@ -0,0 +1,21 @@ +package basesyntax.strategy.impl.BlackFridayDiscountService; +package basesyntax.strategy.impl.DefaultDiscountService; +package basesyntax.strategy.impl.NewYearDiscountService; +package basesyntax.strategy.impl.BirthdayDiscountService; + + +public class DiscountStrategy { + public DiscountService getDiscountServiceBySpecialEvent(String specialEvent) { + switch (specialEvent) { + case "New Year": + return new NewYearDiscountService(); + case "Black Friday": + return new BlackFridayDiscountService(); + case "Birthday": + return new Birthday(); + 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 b/src/main/java/core/basesyntax/strategy/DiscountService new file mode 100644 index 00000000..8ac6d7ed --- /dev/null +++ b/src/main/java/core/basesyntax/strategy/DiscountService @@ -0,0 +1,5 @@ +package core.basesyntax.strategy; + +public interface DiscountService { + double getDiscount(int discount); +} diff --git a/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService b/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService new file mode 100644 index 00000000..73aeab2b --- /dev/null +++ b/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService @@ -0,0 +1,8 @@ +package basesyntax.strategy.impl; + +import basesyntax.strategy.DiscountService; +public class BirthdayDiscountService implements DiscountService { + @Override + public double getDiscount(double discount) { + return (double) discount * 0.67; +} diff --git a/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService b/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService new file mode 100644 index 00000000..66516214 --- /dev/null +++ b/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService @@ -0,0 +1,8 @@ +package basesyntax.strategy.impl; + +import basesyntax.strategy.DiscountService; +public class BlackFridayDiscountService implements DiscountService { + @Override + public double getDiscount(double discount) { + return (double) discount * 0.55; +} diff --git a/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService b/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService new file mode 100644 index 00000000..ea9f895b --- /dev/null +++ b/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService @@ -0,0 +1,8 @@ +package basesyntax.strategy.impl; + +import basesyntax.strategy.DiscountService; +public class DefaultDiscountService implements DiscountService { + @Override + public double getDiscount(double discount) { + return (double) discount; +} diff --git a/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService b/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService new file mode 100644 index 00000000..017e2990 --- /dev/null +++ b/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService @@ -0,0 +1,8 @@ +package basesyntax.strategy.impl; + +import basesyntax.strategy.DiscountService; +public class NewYearDiscountService implements DiscountService { + @Override + public double getDiscount(double discount) { + return (double) discount * 0.8; +} From 4f708dcfeb9db13e695f3b3f0414934fef2cc258 Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Thu, 2 Apr 2026 13:07:15 +0300 Subject: [PATCH 2/8] 2 --- src/main/java/core/basesyntax/DiscountStrategy | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/core/basesyntax/DiscountStrategy b/src/main/java/core/basesyntax/DiscountStrategy index 620ac80a..2d06da1d 100644 --- a/src/main/java/core/basesyntax/DiscountStrategy +++ b/src/main/java/core/basesyntax/DiscountStrategy @@ -1,8 +1,9 @@ -package basesyntax.strategy.impl.BlackFridayDiscountService; -package basesyntax.strategy.impl.DefaultDiscountService; -package basesyntax.strategy.impl.NewYearDiscountService; -package basesyntax.strategy.impl.BirthdayDiscountService; +package core.basesyntax; +import basesyntax.strategy.impl.BlackFridayDiscountService; +import basesyntax.strategy.impl.DefaultDiscountService; +import basesyntax.strategy.impl.NewYearDiscountService; +import basesyntax.strategy.impl.BirthdayDiscountService; public class DiscountStrategy { public DiscountService getDiscountServiceBySpecialEvent(String specialEvent) { From 73dbf2b5ef5ecc147a7693be6666f8b32affd162 Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Thu, 2 Apr 2026 13:15:27 +0300 Subject: [PATCH 3/8] 3 --- src/main/java/core/basesyntax/strategy/DiscountService | 2 +- .../core/basesyntax/strategy/impl/BirthdayDiscountService | 7 ++++--- .../basesyntax/strategy/impl/BlackFridayDiscountService | 7 ++++--- .../core/basesyntax/strategy/impl/DefaultDiscountService | 7 ++++--- .../core/basesyntax/strategy/impl/NewYearDiscountService | 7 ++++--- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/main/java/core/basesyntax/strategy/DiscountService b/src/main/java/core/basesyntax/strategy/DiscountService index 8ac6d7ed..492e1b37 100644 --- a/src/main/java/core/basesyntax/strategy/DiscountService +++ b/src/main/java/core/basesyntax/strategy/DiscountService @@ -1,5 +1,5 @@ package core.basesyntax.strategy; public interface DiscountService { - double getDiscount(int discount); + double getDiscount(); } diff --git a/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService b/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService index 73aeab2b..1e316202 100644 --- a/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService +++ b/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService @@ -1,8 +1,9 @@ -package basesyntax.strategy.impl; +package core.basesyntax.strategy.impl; + +import core.basesyntax.strategy.DiscountService; -import basesyntax.strategy.DiscountService; public class BirthdayDiscountService implements DiscountService { @Override public double getDiscount(double discount) { - return (double) discount * 0.67; + return (double) 33; } diff --git a/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService b/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService index 66516214..191cc114 100644 --- a/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService +++ b/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService @@ -1,8 +1,9 @@ -package basesyntax.strategy.impl; +package core.basesyntax.strategy.impl; + +import core.basesyntax.strategy.DiscountService; -import basesyntax.strategy.DiscountService; public class BlackFridayDiscountService implements DiscountService { @Override public double getDiscount(double discount) { - return (double) discount * 0.55; + return (double) 45; } diff --git a/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService b/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService index ea9f895b..49b0ca33 100644 --- a/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService +++ b/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService @@ -1,8 +1,9 @@ -package basesyntax.strategy.impl; +package core.basesyntax.strategy.impl; + +import core.basesyntax.strategy.DiscountService; -import basesyntax.strategy.DiscountService; public class DefaultDiscountService implements DiscountService { @Override public double getDiscount(double discount) { - return (double) discount; + return (double) 0; } diff --git a/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService b/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService index 017e2990..18d443d3 100644 --- a/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService +++ b/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService @@ -1,8 +1,9 @@ -package basesyntax.strategy.impl; +package core.basesyntax.strategy.impl; + +import core.basesyntax.strategy.DiscountService; -import basesyntax.strategy.DiscountService; public class NewYearDiscountService implements DiscountService { @Override public double getDiscount(double discount) { - return (double) discount * 0.8; + return (double) 20; } From dda9cc4e3e877e2a6358ecf535aaa907ab03415e Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Thu, 2 Apr 2026 13:17:18 +0300 Subject: [PATCH 4/8] 4 --- src/main/java/core/basesyntax/DiscountStrategy | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/core/basesyntax/DiscountStrategy b/src/main/java/core/basesyntax/DiscountStrategy index 2d06da1d..3814b98f 100644 --- a/src/main/java/core/basesyntax/DiscountStrategy +++ b/src/main/java/core/basesyntax/DiscountStrategy @@ -1,9 +1,9 @@ package core.basesyntax; -import basesyntax.strategy.impl.BlackFridayDiscountService; -import basesyntax.strategy.impl.DefaultDiscountService; -import basesyntax.strategy.impl.NewYearDiscountService; -import basesyntax.strategy.impl.BirthdayDiscountService; +import core.basesyntax.strategy.impl.BlackFridayDiscountService; +import core.basesyntax.strategy.impl.DefaultDiscountService; +import core.basesyntax.strategy.impl.NewYearDiscountService; +import core.basesyntax.strategy.impl.BirthdayDiscountService; public class DiscountStrategy { public DiscountService getDiscountServiceBySpecialEvent(String specialEvent) { From 9ca1b2ec7abc662143a37c3d4c031d7d22b376ee Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Thu, 2 Apr 2026 13:25:18 +0300 Subject: [PATCH 5/8] 4 --- src/main/java/core/basesyntax/DiscountStrategy | 5 +++-- .../core/basesyntax/strategy/impl/BirthdayDiscountService | 3 ++- .../core/basesyntax/strategy/impl/BlackFridayDiscountService | 3 ++- .../core/basesyntax/strategy/impl/DefaultDiscountService | 3 ++- .../core/basesyntax/strategy/impl/NewYearDiscountService | 3 ++- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/core/basesyntax/DiscountStrategy b/src/main/java/core/basesyntax/DiscountStrategy index 3814b98f..89ec1ae8 100644 --- a/src/main/java/core/basesyntax/DiscountStrategy +++ b/src/main/java/core/basesyntax/DiscountStrategy @@ -1,11 +1,12 @@ package core.basesyntax; +import core.basesyntax.strategy.DiscountService; import core.basesyntax.strategy.impl.BlackFridayDiscountService; import core.basesyntax.strategy.impl.DefaultDiscountService; import core.basesyntax.strategy.impl.NewYearDiscountService; import core.basesyntax.strategy.impl.BirthdayDiscountService; -public class DiscountStrategy { +public class DiscountStrategy { public DiscountService getDiscountServiceBySpecialEvent(String specialEvent) { switch (specialEvent) { case "New Year": @@ -13,7 +14,7 @@ public class DiscountStrategy { case "Black Friday": return new BlackFridayDiscountService(); case "Birthday": - return new Birthday(); + return new BirthdayDiscountService(); default: return new DefaultDiscountService(); } diff --git a/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService b/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService index 1e316202..724297d6 100644 --- a/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService +++ b/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService @@ -4,6 +4,7 @@ import core.basesyntax.strategy.DiscountService; public class BirthdayDiscountService implements DiscountService { @Override - public double getDiscount(double discount) { + public double getDiscount() { return (double) 33; + } } diff --git a/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService b/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService index 191cc114..dc3f3a35 100644 --- a/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService +++ b/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService @@ -4,6 +4,7 @@ import core.basesyntax.strategy.DiscountService; public class BlackFridayDiscountService implements DiscountService { @Override - public double getDiscount(double discount) { + public double getDiscount() { return (double) 45; + } } diff --git a/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService b/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService index 49b0ca33..864fa04e 100644 --- a/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService +++ b/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService @@ -4,6 +4,7 @@ import core.basesyntax.strategy.DiscountService; public class DefaultDiscountService implements DiscountService { @Override - public double getDiscount(double discount) { + public double getDiscount() { return (double) 0; + } } diff --git a/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService b/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService index 18d443d3..81b30759 100644 --- a/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService +++ b/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService @@ -4,6 +4,7 @@ import core.basesyntax.strategy.DiscountService; public class NewYearDiscountService implements DiscountService { @Override - public double getDiscount(double discount) { + public double getDiscount() { return (double) 20; + } } From 66f2db087bff0845b3f64dd59977e1ddb4edd4f8 Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Thu, 2 Apr 2026 13:30:09 +0300 Subject: [PATCH 6/8] 5 --- .../{DiscountStrategy => DiscountStrategy.java} | 16 ++++++---------- .../{DiscountService => DiscountService.java} | 0 ...countService => BirthdayDiscountService.java} | 0 ...ntService => BlackFridayDiscountService.java} | 0 ...scountService => DefaultDiscountService.java} | 0 ...scountService => NewYearDiscountService.java} | 0 6 files changed, 6 insertions(+), 10 deletions(-) rename src/main/java/core/basesyntax/{DiscountStrategy => DiscountStrategy.java} (56%) rename src/main/java/core/basesyntax/strategy/{DiscountService => DiscountService.java} (100%) rename src/main/java/core/basesyntax/strategy/impl/{BirthdayDiscountService => BirthdayDiscountService.java} (100%) rename src/main/java/core/basesyntax/strategy/impl/{BlackFridayDiscountService => BlackFridayDiscountService.java} (100%) rename src/main/java/core/basesyntax/strategy/impl/{DefaultDiscountService => DefaultDiscountService.java} (100%) rename src/main/java/core/basesyntax/strategy/impl/{NewYearDiscountService => NewYearDiscountService.java} (100%) diff --git a/src/main/java/core/basesyntax/DiscountStrategy b/src/main/java/core/basesyntax/DiscountStrategy.java similarity index 56% rename from src/main/java/core/basesyntax/DiscountStrategy rename to src/main/java/core/basesyntax/DiscountStrategy.java index 89ec1ae8..e23b2ae1 100644 --- a/src/main/java/core/basesyntax/DiscountStrategy +++ b/src/main/java/core/basesyntax/DiscountStrategy.java @@ -8,16 +8,12 @@ public class DiscountStrategy { public DiscountService getDiscountServiceBySpecialEvent(String specialEvent) { - switch (specialEvent) { - case "New Year": - return new NewYearDiscountService(); - case "Black Friday": - return new BlackFridayDiscountService(); - case "Birthday": - return new BirthdayDiscountService(); - default: - return new DefaultDiscountService(); - } + return switch (specialEvent) { + case "New Year" -> new NewYearDiscountService(); + case "Black Friday" -> new BlackFridayDiscountService(); + case "Birthday" -> new BirthdayDiscountService(); + default -> new DefaultDiscountService(); + }; } } diff --git a/src/main/java/core/basesyntax/strategy/DiscountService b/src/main/java/core/basesyntax/strategy/DiscountService.java similarity index 100% rename from src/main/java/core/basesyntax/strategy/DiscountService rename to src/main/java/core/basesyntax/strategy/DiscountService.java diff --git a/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService b/src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService.java similarity index 100% rename from src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService rename to src/main/java/core/basesyntax/strategy/impl/BirthdayDiscountService.java diff --git a/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService b/src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService.java similarity index 100% rename from src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService rename to src/main/java/core/basesyntax/strategy/impl/BlackFridayDiscountService.java diff --git a/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService b/src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService.java similarity index 100% rename from src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService rename to src/main/java/core/basesyntax/strategy/impl/DefaultDiscountService.java diff --git a/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService b/src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService.java similarity index 100% rename from src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService rename to src/main/java/core/basesyntax/strategy/impl/NewYearDiscountService.java From 54c4e0eb2c870097c1038148978f65e12a373c39 Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Thu, 2 Apr 2026 13:32:35 +0300 Subject: [PATCH 7/8] 6 --- src/main/java/core/basesyntax/DiscountStrategy.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/core/basesyntax/DiscountStrategy.java b/src/main/java/core/basesyntax/DiscountStrategy.java index e23b2ae1..43e543fc 100644 --- a/src/main/java/core/basesyntax/DiscountStrategy.java +++ b/src/main/java/core/basesyntax/DiscountStrategy.java @@ -1,10 +1,10 @@ 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; -import core.basesyntax.strategy.impl.BirthdayDiscountService; +import core.basesyntax.strategy.DiscountService; public class DiscountStrategy { public DiscountService getDiscountServiceBySpecialEvent(String specialEvent) { From b10bad9a1d39ad93f469adb998124193e02e346a Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Thu, 2 Apr 2026 13:33:59 +0300 Subject: [PATCH 8/8] 7 --- src/main/java/core/basesyntax/DiscountStrategy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/core/basesyntax/DiscountStrategy.java b/src/main/java/core/basesyntax/DiscountStrategy.java index 43e543fc..0efd5ea2 100644 --- a/src/main/java/core/basesyntax/DiscountStrategy.java +++ b/src/main/java/core/basesyntax/DiscountStrategy.java @@ -1,10 +1,10 @@ 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; -import core.basesyntax.strategy.DiscountService; public class DiscountStrategy { public DiscountService getDiscountServiceBySpecialEvent(String specialEvent) {