소프트웨어 디자인 패턴(software design pattern)은 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용
1. 정의 >알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만들다. 스트레티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 2. 적용 오리 시뮬레이션 2.1 바뀌는 부분과 바뀌지 않는 부분 구분하기 duck
정의 >한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many)의존성을 정의한다. 옵저버 패턴에서는 다수에게 상태를 전달해주는 주제와 주제에게 상태를 전달받는 여러개의 옵저버 의 관계로
객체에 추가적인 요건을 동적으로 첨가한다. 데코레이터는 서브클래스로 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다.데코레이터 패턴을 사용하면 확장에 대한 내용을 캡슐화해 실행 중에 확장을 가능하게 해준다.데코레이터 패턴 특징데코레이터의 슈퍼클래스는