Helper Class 란 무엇일까? 일하다 보니까 SaxHelper, CopyHelper 등 class 가 많이 보여서 의문증이 생겼다. Adapter Pattern처럼 중간에 인터페이스 역할을 하는 것일까? 실상 코드를 보니 Utility에 가까운 기능도 있고 아닌 것도 있어서 Helper Class의 역할을 찾아보게 되었다.
먼저 위키피디아의 있는 코드는 아래와 같다.
public class PrependHelper
{
// static functions
public static String MeowPrepend(String text)
{
return "Meow meow " + text + "!";
}
public static String WoofPrepend(String text)
{
return "Woof woof " + text + "!";
}
public static String WoohPrepend(String text)
{
return "Wooh " + text + "!";
}
}
단순하게 A라는 class의 정보를 출력해주는 것으로 보인다.
http://minsone.github.io/programming/what-is-helper-class의 웹사이트의 정리를 보면
helper class는 일부 기능을 제공하여 도와주지만, 애플리케이션이나 클래스의 주목적으로는 사용될 수 없다고 합니다. 그리고 helper class의 인스턴스는 helper object로 불립니다.
하지만 조금 달리 보면 utility class와 helper class는 비슷하다고 생각할 수도 있습니다. utility class도 보조적인 역할로 사용되는데 말이죠.
하지만 utility class는 모든 메서드가 정적 메소드입니다(Swift에선 Type method, Objective-C에서는 Class Method로 불림). 일반적으로 helper class는 모든 메소드가 정적 메서드이지 않으며, 여러 개의 helper class의 인스턴스가 있을 수 있습니다.
또 한, helper class는 private로 선언하여 다른 곳에서의 접근을 막도록 하는 것이 좋습니다. 이는 특정 클래스를 도와주기 위해 helper class를 만든 것이지, 외부에서 접근하여 사용할 목적으로 만든 것이 아니기 때문입니다. 그리고 다른 helper class와 의존성이 생기지 않도록 해야 합니다.
helper class는 특정 클래스의 작업을 도와주는 역할을 하는 클래스로 유용한 기능들을 제공하며, 다른 helper class와는 의존하지 않습니다.
하지만 helper class의 helper라는 의미에 더 치중하면 좋습니다. helper class, helper function도 되기 때문입니다. 즉, 어떤 일을 도와주고 기능을 제공해주는 존재로 포괄적으로 생각하는 것이 좋습니다.
https://zetawiki.com/wiki/%ED%97%AC%ED%8D%BC_%ED%81%B4%EB%9E%98%EC%8A%A4의 정리에서는 간단명료하게 설명되어 있다.
Helper Class
헬퍼 클래스, 도우미 클래스
개발자의 편의를 위한 클래스
어떤 기능을 간편하게 수행하기 위해 사용
유틸리티 클래스는 특수한 예
개발자가 DUMP 용도로 편리하게 사용하는 CLASS 다.
New FACE (2) | 2021.12.11 |
---|---|
unsigned long long int 를 출력 하는 방법 (0) | 2021.02.18 |
조건문(if) 범례 (0) | 2019.09.09 |
내안의 독백 (0) | 2018.09.09 |
디자인 패턴 개념 정리 (0) | 2018.09.04 |
댓글 영역