어댑터 패턴은 합성, 즉 객체를 속성으로 만들어서 참조하는 디자인 패턴
호출당하는 쪽의 메서드를 호출하는 쪽의 코드에 대응하도록 중간에 변환기를 통해 호출하는 패턴
프록시 패턴은 클라이언트가 받을 반환값을 변경하지 않지만, 데코레이터 패턴은 반환값에 데코를 덧입힌다.
인스턴스를 하나만 만들어 사용하기 위한 패턴으로 객체 생성을 위한 new 에 제약이 필요하고 만들어진 단일 객체를 반환할 수 있는 메서드가 필요함
new