• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

component 중복초기화 부분 추상클래스로 변경

22.05.26 15:57 작성 조회수 460

8

강사님께서 말씀주신 component 중복 호출 부분 추상클래스로 빼봤습니다.  피드백 사항 있으면 말씀 부탁 드립니다^^;

Decorator - 추상클래스 

public abstract class Decorator implements Component{

private Component component;

public Decorator(Component component) {
this.component = component;
}

@Override
public String operation() {
return component.operation();
}
}

MessageDecorator

public class MessageDecorator extends Decorator{

public MessageDecorator(Component component) {
super(component);
}

@Override
public String operation() {
log.info("MessageDecorator 실행");

//data -> *****data*****
String result = super.operation();
String decoResult = "*****" + result + "*****";
log.info("MessageDecorator 꾸미기 적용 전={}, 적용 후={}", result, decoResult);
return decoResult;
}
}

TimeDecoratior

public class MessageDecorator extends Decorator{

public MessageDecorator(Component component) {
super(component);
}

@Override
public String operation() {
log.info("MessageDecorator 실행");

//data -> *****data*****
String result = super.operation();
String decoResult = "*****" + result + "*****";
log.info("MessageDecorator 꾸미기 적용 전={}, 적용 후={}", result, decoResult);
return decoResult;
}
}

test 코드 

@Test
void decorator3() {
Decorator messageDecorator = new MessageDecorator(new RealComponent());
messageDecorator.operation();
System.out.println();

Decorator timeMsgDecorator = new TimeDecorator(new MessageDecorator(new RealComponent()));
timeMsgDecorator.operation();
}

답변 1

답변을 작성해보세요.

2

안녕하세요. 이윤구님

잘 해결하셨습니다.

감사합니다.