헬퍼 클래스

객체 지향 프로그래밍에서 헬퍼 클래스(Helper class)는 사용되는 애플리케이션이나 클래스의 주요 목표가 아닌 일부 기능을 제공하는 데 도움을 주기 위해 사용된다. 헬퍼 클래스의 인스턴스는 헬퍼 객체라고 불린다 (예를 들어, 위임 패턴에서).

헬퍼 클래스는 종종 초보 프로그래머가 한두 개의 클래스를 만드는 것을 넘어선 후에 초급 프로그래밍 수업에서 생성된다.

유틸리티 클래스는 모든 메서드가 정적이라는 점에서 헬퍼 클래스의 특별한 경우이다. 일반적으로 헬퍼 클래스는 모든 정적 메서드를 가질 필요는 없지만 인스턴스 변수를 가질 수 있다. 헬퍼 클래스의 여러 인스턴스가 존재할 수도 있다.

 예시 
이것은 유틸리티 클래스의 예시이기도 하다. 아래는 문자열 객체에 대한 확장 메서드이다.
public static class PrependHelper
{
    // static functions
    public static string MeowPrepend(this string text)
    {
        return $"Meow meow {text}!";
    }

    public static string WoofPrepend(this string text)
    {
        return $"Woof woof {text}!";
    }

    public static string WoohPrepend(this string text)
    {
        return $"Wooh {text}!";
    }
}

 헬퍼 클래스의 대안 
헬퍼 클래스가 될 함수들은 사용되는 곳 가까이에 배치될 수 있다.
다른 대안은 헬퍼 클래스 매개변수를 필드로 클래스에 래핑하는 것이다. 그 클래스는 가지고 있는 필드와 연결된 비즈니스 도메인에서 이름을 가질 수 있다. 아래 예시는 헬퍼 메서드를 도메인 타입의 메서드로 변환하는 방법을 보여준다:

public class Text
{
    string text;

    public string MeowPrepend()
    {
        return $"Meow meow {text}!";
    }

    public string WoofPrepend()
    {
        return $"Woof woof {text}!";
    }

    public string WoohPrepend()
    {
        return $"Wooh {text}!";
    }
}

 각주 

 같이 보기 
 계층 구조
 클래스 다이어그램 (UML)
 클래스 기반 프로그래밍

분류:클래스