자주 사용하는 설계 패턴, 이미 만들어 진 것들을 정형화해서 ⇒ 최적의 방법으로 개발할 수 있도록 정해둔 설계소프트웨어 설계시 기존 경험, 다양한 경험 중요한데이러한 지식을 공유하기 위해 나온것이 GoF(Gang of Four)의 디자인 패턴객체지향 개념에 따른 설계
1. 개념 어떠한 클래스(객체)가 유일하게 1개만 존재할 때 서로 자원을 공유할 때 ex. 현실 세계 → 프린터, 프로그래밍 → TCP Socker통신에서 서버와 연결된 connect 객체에 사용 instance, singleton(), getInstance() 2.
호환성이 없는 기존 클래스의 인터페이스를 변환하여 재사용 가능SOLID 중 개방 폐쇄 원칙(OCP)ex. 전기 콘센트 110v, 220v 서로 변환해주는 어댑터110 콘센트220 콘센트110v 의 헤어드라이기220v 의 에어컨220v의 청소기호환성이 없는 클래스 끼리
대리인뭔가 대신해서 처리Proxy Class를 통해 대신 전달하는 형태가 설계되고, Client는 Proxy로부터 전달된 결과를 받음Cache 기능으로 활용 가능SOLID 중 개방 폐쇄 원칙(OCP), 의존 역전 원칙(DIP)앞 뒤로 넘어가는 기능, 인자 값 조절 가능
기능 추가 확장기존 클래스(뼈대)는 유지하고, 필요한 형태로 추가적으로 꾸밀 때 사용확장이 필요한 경우 → 상속의 대안으로 활용SOLID 중 개방 폐쇄 원칙(OCP), 의존 역전 원칙(DIP)아우디라는 자동차 브랜드가 차 레벨에 따라 가격을 추가한다상위 레벨로 올라 갈
관찰자 패턴변화가 일어났을 때, 미리 등록된 다른 클래스에 통보event listener 에서 많이 사용버튼을 클릭하면 message 가 전달되는 간략한 예제IButtonListener버튼 이벤트 추상화Button버튼을 클릭하면 클릭 이벤트로 message 전달main
중간 다리 역할건물의 앞쪽 정면을 가리킴 → 뒷쪽은 알지 못함여러 객체-실제 사용하는 서브 객체 사이에 복잡한 의존관계가 있을 때중간에 Facade 라는 객체를 두고, 여기서 제공하는 interface만을 활용하여 기능을 사용자신이 가지고 있는 각 클래스의 기능 및 제
객체 지향의 꽃유사한 행위들을 캡슐화 → 객체 행위를 바꾸고 싶은 경우에는 직접 변경 아닌 전략만 변경유연한 확장SOLID 중 개방 폐쇄 원칙(OCP), 의존 역전 원칙(DIP)전략 method 가진 전략 객체 → Normal Strategy(인코딩하지 않는 기본),