1.Constructor Injection构造函数注入
TaxReport.java
package com.company;
public class TaxReport {
private TaxCalculator calculator;
public TaxReport(TaxCalculator calculator){
this.calculator = calculator;
}
public void show(){
var tax = calculator.calculateTax();
System.out.println(tax);
}
}
把接口TaxCalculator直接写进来:
private TaxCalculator calculator;
public TaxReport(TaxCalculator calculator){
this.calculator = calculator;
}
Main.java
package com.company;
public class Main {
public static void main(String[] args) {
var calculator = new TaxCalculator2018(100_000);
var report = new TaxReport(calculator)