結果 : dependency inversion principle (dip) example java