У меня есть базовый интерфейс учетных записей, а также два класса, реализующие его. У меня есть два класса ClosedStateAccount и OpenedStateAccount. Теперь, когда счет находится в открытом состоянии, только я могу выполнять транзакции, такие как снятие средств и депозит; и если счет находится в закрытом состоянии, я не могу выполнять такие операции, как операции пополнения и снятия средств.
Если выбрано открытое состояние, выбрано сбережение и выбрана операция по внесению денег, я могу внести деньги, используя 1) путем отправки наличных физически 2) RTGS 3) онлайн 4) Google Pay
Если выбран вывод, я могу вывести деньги, используя 1) онлайн 2) Google Pay
Если выбрано закрытое состояние, то я не может внести или снять деньги.
Также спроектируйте его в соответствии с теоремой CAP и должны использовать концепции шаблона проектирования фабрики по мере необходимости, а затем инициализировать объект класса только при необходимости. Расскажите, пожалуйста, как это сделать. Используйте другие шаблоны проектирования, которые также удовлетворяют теореме CAP и всем пяти основным принципам.
package com.boot.LowLevelDesignProblem1;
public interface Account
{
public default void savingsOption()
{
System.out.println("Saving option is available");
}
public default void CurrentOption()
{
System.out.println("Current option is available");
}
public void deposit(double amount);
public void withdraw(double amount);
}
package com.boot.LowLevelDesignProblem1;
public class ClosedStateAccout implements Account{
@Override
public void deposit(double amount) {
System.out.println( "Closed state account");
System.out.println( "Deposit Option is not available" );
}
@Override
public void withdraw(double amount) {
System.out.println( "Closed state account" );
System.out.println( "Withdraw Option is available");
}
}
package com.boot.LowLevelDesignProblem1;
public class OpenedStateAccount implements Account
{
@Override
public void deposit(double amount) {
System.out.println( "Opened state account");
System.out.println( "Deposit Option is available" );
}
@Override
public void withdraw(double amount) {
System.out.println( "Opened state account" );
System.out.println( "Withdraw Option is available");
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... l-design-b