diff --git a/src/CardPayment.java b/src/CardPayment.java new file mode 100644 index 0000000..4908cae --- /dev/null +++ b/src/CardPayment.java @@ -0,0 +1,11 @@ +class CardPayment implements PaymentMethod { + @Override + public void pay(int amount) { + System.out.println("Pay card: " + amount + " грн"); + } + + @Override + public String name() { + return "Card"; + } +} diff --git a/src/Main.java b/src/Main.java new file mode 100644 index 0000000..c51bb1c --- /dev/null +++ b/src/Main.java @@ -0,0 +1,16 @@ +//TIP To Run code, press or +// click the icon in the gutter. +public class Main { + public static void main(String[] args) { + PaymentProcessor processor = new PaymentProcessor(); + PaymentMethod card = new CardPayment(); + PaymentMethod paypal = new PaypalPayment(); + processor.process(card, 1000); + processor.process(paypal, 500); + System.out.println(); + card.payWithFee(1000, 25); + paypal.payWithFee(500, 10); + } +} + + diff --git a/src/PaymentMethod.java b/src/PaymentMethod.java new file mode 100644 index 0000000..63a9194 --- /dev/null +++ b/src/PaymentMethod.java @@ -0,0 +1,14 @@ +interface PaymentMethod { + String name(); + + void pay(int amount); + + default void payWithFee(int amount, int fee) { + int totalAmount = amount + fee; + System.out.println("Total amount to pay: " + totalAmount); + pay(totalAmount); + } +} + + + diff --git a/src/PaymentProcessor.java b/src/PaymentProcessor.java new file mode 100644 index 0000000..da617eb --- /dev/null +++ b/src/PaymentProcessor.java @@ -0,0 +1,6 @@ +class PaymentProcessor{ + public void process(PaymentMethod method, int amount) { + System.out.println("Processing payment with " + method.name()); + method.pay(amount); + } +} \ No newline at end of file diff --git a/src/PaypalPayment.java b/src/PaypalPayment.java new file mode 100644 index 0000000..c6f5100 --- /dev/null +++ b/src/PaypalPayment.java @@ -0,0 +1,11 @@ +class PaypalPayment implements PaymentMethod { + @Override + public String name() { + return "PayPal"; + } + + @Override + public void pay(int amount) { + System.out.println("Paying " + amount + " using PayPal."); + } +} diff --git a/src/Task2/DailyReport.java b/src/Task2/DailyReport.java new file mode 100644 index 0000000..134b023 --- /dev/null +++ b/src/Task2/DailyReport.java @@ -0,0 +1,13 @@ +package Task2; + +public class DailyReport extends ReportGenerator { + @Override + protected String fetchData() { + return "Daily sales: 1000 грн, New customers: 50"; + } + + @Override + protected String formatData(String data) { + return "Formatted Daily Report:" + data; + } +} diff --git a/src/Task2/Main2.java b/src/Task2/Main2.java new file mode 100644 index 0000000..2760d91 --- /dev/null +++ b/src/Task2/Main2.java @@ -0,0 +1,8 @@ +package Task2; + +public class Main2 { + public static void main(String[] args) { + ReportGenerator dailyReport = new DailyReport(); + dailyReport.generate(); + } +} diff --git a/src/Task2/ReportGenerator.java b/src/Task2/ReportGenerator.java new file mode 100644 index 0000000..aa82324 --- /dev/null +++ b/src/Task2/ReportGenerator.java @@ -0,0 +1,19 @@ +package Task2; + +abstract class ReportGenerator { + public final void generate() { + String data = fetchData(); + String formattedData = formatData(data); + displayReport(formattedData); + } + + protected abstract String fetchData(); + + protected abstract String formatData(String data); + + protected void displayReport(String formattedData) { + System.out.println("Report:"); + System.out.println(formattedData); + } + +} diff --git a/src/Task3/EmailNotifier.java b/src/Task3/EmailNotifier.java new file mode 100644 index 0000000..ef94d73 --- /dev/null +++ b/src/Task3/EmailNotifier.java @@ -0,0 +1,7 @@ +package Task3; + +interface EmailNotifier { + default void send(String message) { + System.out.println("Sending Email: " + message); + } +} diff --git a/src/Task3/Main3.java b/src/Task3/Main3.java new file mode 100644 index 0000000..a5c5b59 --- /dev/null +++ b/src/Task3/Main3.java @@ -0,0 +1,8 @@ +package Task3; + +public class Main3 { + public static void main(String[] args) { + MultiNotifier notifier = new MultiNotifier(); + notifier.send("message"); + } +} diff --git a/src/Task3/MultiNotifier.java b/src/Task3/MultiNotifier.java new file mode 100644 index 0000000..56875b6 --- /dev/null +++ b/src/Task3/MultiNotifier.java @@ -0,0 +1,9 @@ +package Task3; + +class MultiNotifier implements SmsNotifier, EmailNotifier { + @Override + public void send(String message) { + SmsNotifier.super.send(message); + EmailNotifier.super.send(message); + } +} diff --git a/src/Task3/SmsNotifier.java b/src/Task3/SmsNotifier.java new file mode 100644 index 0000000..6843b90 --- /dev/null +++ b/src/Task3/SmsNotifier.java @@ -0,0 +1,7 @@ +package Task3; + +interface SmsNotifier { + default void send(String message) { + System.out.println("Sending SMS: " + message); + } +}