비지터 패턴 기존 코드를 변경하지 않고 새로운 기능을 추가하는 방법 더블 디스패치 (Double Dispatch) 를 활용할 수 있다. 아래와 같은 경우 해당 패턴을 적용해 볼 수 있다. 특정 클래스에 SRP 를 지키고 싶어 더는 책임을 늘리고 싶지 않을 때 버그가 발생할 수 있으니 더 이상 코드를 작성하고 싶지 않을 때 해당 코드는 다른 곳에서도 사용될 수 있을거 같다 라는 생각이 들 때 비지터 패턴 적용 전 특정 디바이스에 도형을 그려야 한다. 디바이스 클래스를 각 구체적인 디바이스 (ex. phone, watch) 들이 상속하고 Shape 인터페이스를 도형들이 implements 한다. Device 클래스와 그것을 구현한 각 디바이스들은 모두 비어 있는 클래스이다. public class Devi..