public PlatinumAccount( AccountHolder holder, IAccountNumberGenerator idGenerator, IMoneyAccuracyCalculator rounder = null) : base(holder, idGenerator, rounder) { }
protected BankAccount(AccountHolder holder, IAccountNumberGenerator idGenerator, IMoneyAccuracyCalculator rounder = null) { ValidateOnNull(holder, nameof(holder)); this.Id = idGenerator.GenerateAccountNumber(); this.rounder = rounder ?? new OneHundredthAccuracy(); this.Holder = holder; }
public abstract BankAccount Create( AccountHolder holder, IAccountNumberGenerator idGenerator, IMoneyAccuracyCalculator moneyRounder = null);
public override BankAccount Create(AccountHolder holder, IAccountNumberGenerator idGenerator, IMoneyAccuracyCalculator moneyRounder = null) { return(new BaseAccount(holder, idGenerator, moneyRounder)); }