У меня есть базовый интерфейс учетных записей, а также два класса, реализующие его. У меня есть два класса ClosedStateAccount и OpenedStateAccount. Теперь, когда учетная запись находится в открытом состоянии, только я могу выполнять транзакции, например, я могу снимать и вносить депозиты, а если учетная запись закрыта, я не могу выполнять транзакции, такие как операции пополнения и снятия средств.
Если выбрано «Открытое состояние», выбрано «Сбережения» и выбрана операция «Внесение денег», то я могу внести деньги, используя 1) Физическую отправку наличных 2) RTGS 3) Онлайн 4) Google PAy
Если выбран вывод, я могу вывести деньги, используя 1) Через Интернет 2) Google Pay 3)
Если выбрано закрытое состояние, я не могу внести или снять деньги.
Также спроектируйте его, используя соответствие теореме 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