Closed donghyeon3813 closed 2 months ago
도우미 메서드는 상위 클래스의 중요한 로직을 보호하고 하위 클래스에서 상위클래스의 중요 로직을 변경하지 못하도록 하는 메소드입니다. 그리고 예시코드 같은 방식으로도 구현을 할 수 있지만, 다양한 방식으로 구현될 수 있습니다. 즉, 도우미 메소드는 상위 클래스의 일관된 동작을 유지하고, 하위 클래스에서 필요한 부분만 재정의할 수 있도록 하는 것입니다. 사용법이 정해진 것은 아니고, 설계 패턴중에 하나라고 이해하면 될거같습니다.
예제코드
public class HelperMethod {
public static void main(String[] args) {
DocumentProcessor processor = new CustomDocumentProcessor();
processor.processDocument();
}
}
class DocumentProcessor {
// Public method defining the workflow
public final void processDocument() {
openDocument();
prepareContent();
executePrint(); // 도우미 메서드 호출
closeDocument();
}
// Private helper methods to protect important logic
private void openDocument() {
System.out.println("Opening document...");
}
private void closeDocument() {
System.out.println("Closing document...");
}
// Protected method to be overridden by subclasses
protected void prepareContent() {
System.out.println("Preparing content in superclass...");
}
// Private helper method calling the potentially overridden method
private void executePrint() {
printContent(); // 하위 클래스에서 재정의될 수 있는 메서드 호출
}
// Method to be overridden by subclasses
protected void printContent() {
System.out.println("Printing content in superclass...");
}
}
class CustomDocumentProcessor extends DocumentProcessor {
@Override
protected void prepareContent() {
System.out.println("Preparing custom content...");
}
@Override
protected void printContent() {
System.out.println("Printing custom content...");
}
}
본문 코드를 private 도우미 메서드로 옮긴고 도우미 메서드를 호출하도록 수정한다 여기서 도우미 메서드라 함은 무엇을 말하는 것일까요?