#1313 Add Separated Interface design pattern
This commit is contained in:
36
separated-interface/etc/separated-interface.urm.puml
Normal file
36
separated-interface/etc/separated-interface.urm.puml
Normal file
@ -0,0 +1,36 @@
|
||||
@startuml
|
||||
package com.iluwatar.separatedinterface {
|
||||
class App {
|
||||
- LOGGER : Logger {static}
|
||||
+ PRODUCT_COST : double {static}
|
||||
+ App()
|
||||
+ main(args : String[]) {static}
|
||||
}
|
||||
}
|
||||
package com.iluwatar.separatedinterface.taxes {
|
||||
class DomesticTax {
|
||||
+ TAX_PERCENTAGE : double {static}
|
||||
+ DomesticTax()
|
||||
+ calculate(amount : double) : double
|
||||
}
|
||||
class ForeignTax {
|
||||
+ TAX_PERCENTAGE : double {static}
|
||||
+ ForeignTax()
|
||||
+ calculate(amount : double) : double
|
||||
}
|
||||
}
|
||||
package com.iluwatar.separatedinterface.invoice {
|
||||
class InvoiceGenerator {
|
||||
- amount : double
|
||||
- taxCalculator : TaxCalculator
|
||||
+ InvoiceGenerator(amount : double, taxCalculator : TaxCalculator)
|
||||
+ getAmountWithTax() : double
|
||||
}
|
||||
interface TaxCalculator {
|
||||
+ calculate(double) : double {abstract}
|
||||
}
|
||||
}
|
||||
InvoiceGenerator --> "-taxCalculator" TaxCalculator
|
||||
DomesticTax ..|> TaxCalculator
|
||||
ForeignTax ..|> TaxCalculator
|
||||
@enduml
|
Reference in New Issue
Block a user