feat: add advanced multithreading banking system skeleton

This commit is contained in:
2026-06-03 16:48:39 +03:30
parent 1b38f250e5
commit ac35c817ee
7 changed files with 250 additions and 0 deletions
@@ -0,0 +1,44 @@
package dev.banking.processor;
import dev.banking.model.*;
import java.util.Map;
public class TransactionProcessor {
private final Map<Integer, BankAccount> accounts;
public TransactionProcessor(
Map<Integer, BankAccount> accounts
) {
this.accounts = accounts;
}
public void process(Transaction tx) {
BankAccount source =
accounts.get(tx.getSourceAccountId());
switch (tx.getType()) {
case DEPOSIT -> {
source.deposit(tx.getAmount());
}
case WITHDRAW -> {
source.withdraw(tx.getAmount());
}
case TRANSFER -> {
BankAccount target =
accounts.get(tx.getTargetAccountId());
source.transfer(
target,
tx.getAmount()
);
}
}
}
}