언어/디자인패턴
-
템플릿 메서드(Template Method) 패턴언어/디자인패턴 2024. 5. 26. 22:31
템플릿 메서드 패턴이란? 여러 클래스에서 공통으로 사용하는 메서드를 템플릿화하여 상위 클래스에서 정의하고, 하위 클래스마다 세부 동작 사항을 다르게 구현하는 패턴이다.변하지 않는 기능은 상위 클래스에 만들어두고 자주 변경되어 확장할 기능은 하위 클래스에서 만들도록 하는 것이다.상속이라는 기술을 극대화하여, 알고리즘의 뼈대를 맞추는 것에 초점을 둔다. 공통된 부분에서 다른 부분 혹은 확장 가능한 부분을 제공하는 느낌! (공통을 따로 뺀다는 느낌보다 공통은 그대로 두고, 바뀌는 부분만 새로 만들도록 한다!) AbstractClass(추상 클래스) : 템플릿 메소드를 구현하고, 템플릿 메소드에 돌아가는 추상 메서드를 선언한다. 이 추상 메서드는 하위클래스 ConcreateClass에서 구현된다.Concrete..
-
전략 패턴 (Strategy)언어/디자인패턴 2024. 5. 26. 21:41
전략 패턴이란?실행(런타임) 중 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 하는 행위 디자인 패턴이다.전략은 일종의 알고리즘 혹은 특정 목표를 수행하기 위한 행동 계획을 의미한다.어떤 일을 수행하는 알고리즘이 여러가지 일때, 동작들을 미리 전략으로 정의하여, 손쉽게 교체하는 방법이다. 알고리즘 변형이 빈번할 경우 적합하다. 전략 인터페이스 : 모든 전략 구현체에 대한 공용 인터페이스 전략 객체(concreate): 전략 인터페이스 구현체 컨텍스트(Context) : 알고리즘을 실행할 때 해당 알고리즘과 연결된 전략 객체 메서드 호출 (전략을 사용하는 큰 기능)클라이언트 : 전략 객체 전달, 해당 전략 사용해서 결과 얻음class Client{ public static void main(St..