수직적인 약속 (갑과 을)

할수있는 것을 제한

갈림길을 만낫을 때 그 갈림길 갯수만큼 갈수 있는 길을 강제하는것

위에서 아래로 코드를 작성할 때 유용함?

<aside> 💡 추상 클래스와 문법이 같으니 헷갈리지 말자.

</aside>

package ex07.example;

interface Remocon {
    void on();
    void off();
}

class SamsungRemocon implements Remocon {

    @Override
    public void on() {
        System.out.println("삼성 리모컨 on");
    }

    @Override
    public void off() {
        System.out.println("삼성 리모컨 off");
    }
}

class LgRemocon implements Remocon {

    @Override
    public void on() {
        System.out.println("엘지 리모컨 on");
    }

    @Override
    public void off() {
        System.out.println("엘지 리모컨 off");
    }
}

/**
 * 작성자 : 홍길동
 * 날짜 : 2023.12.26
 * 구현체 : SamsungRemocon, LgRemocon
 */
class CommonRemocon {
    private Remocon r;

    public CommonRemocon(Remocon r) {
        this.r = r;
    }

    public void on() {
        r.on();
    }

    public void off() {
        r.off();
    }
}

public class InterEx01 {
    public static void main(String[] args) {
        CommonRemocon cr = new CommonRemocon(new SamsungRemocon());
        cr.on();
    }
}
package ex07.example;

interface EventListener {
    void action();
}

class MyApp {
    public void click(EventListener l) {
        l.action();
    }
}

public class InterEx02 {
    public static void main(String[] args) {
        MyApp app = new MyApp();
        app.click(() -> {
            System.out.println("회원가입 로직이 실행됩니다.");
        });
    }
}