디자인 패턴
특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책.
객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴.
소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿.
프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 관행이나, 이를 맹신하여 굳이 필요가 없을 것 같은 부분까지 디자인 패턴을 쓰는 것은 좋지 않다.
전략 패턴 (Strategy Pattern)
실행 중에 알고리즘을 선택할 수 있게 하는 행위 소프트웨어 디자인 패턴
특정한 계열의 알고리즘들을 정의하고, 각 알고리즘을 캡슐화하며, 이 알고리즘들을 해당 계열 안에서 상호 교체가 가능하게 만든다.
즉, 객체가 할 수 있는 행위들 각각을 전략으로 만들어 놓고, 동적으로 행위의 수정이 필요한 경우 전략을 바꾸는 것만으로 행위의 수정이 가능하도록 만든 패턴이다.
전략 패턴을 사용하는 이유
: 행위를 수정하기 위해 기존의 메서드를 수정하면 이는 SOLID 원칙 중 OCP(Open-Closed Principle)에 위배.
또한 시스템 확장시 유지 보수가 어려워짐.
전략 패턴의 예시를 잘 이해가게 작성한 블로그 : https://victorydntmd.tistory.com/292
'자바기초' 카테고리의 다른 글
부동소수점과 그 한계 (0) | 2020.05.13 |
---|---|
절차 지향 언어와 객체 지향 언어 (0) | 2020.05.13 |
자바 의존성 관련 - 프레임워크와 자바 웹개발 관련 프레임워크 (0) | 2020.05.13 |
자바 의존성 관련 - 메이븐과 의존성 관리도구 (0) | 2020.05.13 |
자바 의존성 관련 - 의존성과 라이브러리, 그리고 Jar (0) | 2020.05.13 |