Hexagonal Architecture Relevance Example
Jump to navigation
Jump to search
https://docs.google.com/spreadsheets/d/1zgT36ZAHIHace2nUwtbzDuLvC6-r0Qbxdh5_8WjDGXY/edit?usp=sharing
- Page4 Java Code
- Page9 Component with ports -> turned version of it
- Page18 Ownership of interface
3D Animations
- https://nicescad.bitplan.com/design/c0hgnbt7
- https://nicescad.bitplan.com/design/izrua6aq
- https://nicescad.bitplan.com/design/7mahjky2
Code
interface ForCalculatingTaxes {
double taxOn(double amount);
}
interface ForGettingTaxRates {
double taxRate(double amount);
}
class FixedTaxRateRepository implements ForGettingTaxRates {
public double taxRate(double amount) {
return 0.15;
}
}
class TaxCalculator implements ForCalculatingTaxes {
private ForGettingTaxRates taxRateRepository;
public TaxCalculator(ForGettingTaxRates taxRateRepository) {
this.taxRateRepository = taxRateRepository;
}
public double taxOn(double amount) {
return amount * taxRateRepository.taxRate(amount);
}
}
class Main {
public static void main(String[] args) {
ForGettingTaxRates taxRateRepository = new FixedTaxRateRepository();
ForCalculatingTaxes myCalculator = new TaxCalculator(taxRateRepository);
System.out.println(myCalculator.taxOn(100));
}
}