μμ‘΄μ±
- μ΄λ€ κ°μ²΄κ° νλ ₯νκΈ° μν΄ λ€λ₯Έ κ°μ²΄λ₯Ό νμλ‘ ν λ λ κ°μ²΄ μ¬μ΄μ μμ‘΄μ±μ΄ μ‘΄μ¬νκ² λλ€.
- μμ‘΄μ±μ μ€ν μμ κ³Ό ꡬν μμ μ μλ‘ λ€λ₯Έ μλ―Έλ₯Ό κ°μ§λ€. (μΆμ²: μ€λΈμ νΈ, μ‘°μνΈ)
- μ»΄νμΌνμ μμ‘΄μ±: μ½λλ₯Ό μμ±νλ μμ μμ λ°μνλ μμ‘΄μ±. ν΄λμ€ μ¬μ΄μ μμ‘΄μ±.
- λ°νμ μμ‘΄μ±: μ ν리μΌμ΄μ
μ΄ μ€νλλ μμ μ μμ‘΄μ±. κ°μ²΄ μ¬μ΄μ μμ‘΄μ±.
public class Order{
private FixedAmountVoucher voucher;
public Order(long discount){
voucher = new FixedAmountVoucher(discount);
}
κ²°ν©λ
- κ²°ν©λλ βνλμ κ°μ²΄κ° λ³κ²½μ΄ μΌμ΄λ λμ κ΄κ³λ₯Ό λ§Ίκ³ μλ λ€λ₯Έ κ°μ²΄μκ² λ³νλ₯Ό μꡬνλ μ λ"λΌκ³ λ³Ό μ μμ΅λλ€.
- μ΄λ€ λ μμ μ¬μ΄μ μ‘΄μ¬νλ μμ‘΄μ±μ΄ λ°λμ§ν λ λ μμκ° λμ¨ν κ²°ν©λ λλ μ½ν κ²°ν©λλ₯Ό κ°μ§λ€κ³ λ§ν©λλ€. λ°λλ‘ λ μμμ μμ‘΄μ±μ΄ λ°λμ§νμ§ λͺ»ν λ λ¨λ¨ν κ²°ν©λ, λλ κ°ν κ²°ν©λλ₯Ό κ°μ§λ€κ³ λ§ν¨
- μμ κ΄κ³λμμ
Order
κ° FixedAmountVoucher
λ₯Ό λ°λ‘ κ°μ§λ κ² μλλΌ Voucher
interfaceλ₯Ό κ°μ§μΌλ‘μ¨ κ²°ν©λλ₯Ό λμ¨νκ² ν΄μ€
public class Order{
private Voucher voucher;
public Order(Voucher voucher){
this.voucher = voucher;
}