이번엔 Helper class(이하 헬퍼클래스) 에 대해 알아보겠다.
헬퍼클래스란..?
단어의 의미로 먼저 보자면 도움을 주는 클래스이다.
위키피디아를 살펴보면 https://en.wikipedia.org/wiki/Helper_class
개념이 그렇게 어렵지 않을 것이다.
객체지향 프로그래밍에서, 어떤 기능성을 도와주는데 보통 사용된다. 이 기능성이란 애플리케이션의 주 용도가 아닌 것.
즉, 메인 기능이 아닌 어떠한 기능을 지원해준다고 보면 된다.
(뜬금 없지만, 헬퍼클래스의 인스턴스는 헬퍼 오브젝트라고 불린단다. ㅎㅎ)
유틸리티 클래스는 헬퍼 클래스의 특별한 경우 중 하나라고 한다. 뭐가 특별하냐고? 유틸리티 클래스는 모든 메소드가 정적 메소드 (Static method)라고 한다.
그렇단 얘기는, 헬퍼 클래스는 모든 메소드가 static일 필요는 없다는 것.
헬퍼 클래스는 인스턴스 변수도 가질 수 있고, 헬퍼클래스의 인스턴스는 여러개 존재할 수도 있다는 것.
대충 위키피디아의 내용은 저런데,
그렇다면 헬퍼 클래스의 예로는 뭐가 있을까?
내가 본 예로는 음.. API를 사용할 때 헬퍼클래스를 둘 수 있겠다.
API를 사용하려면 그 platform으로부터 받은 access ID / key가 있을 것이다.
이를 API를 사용할 때마다 선언하고 값을 넣는 것은 나중에 ID나 key값이 변경되었을 때 모두 수정하기에 귀찮다.
그래서 하나의 클래스에 담아두고 필요할 때마다 호출해서 쓰는 것.
다만 이 ID나 key에 아무나 접근해서 수정하면 안 되니 공개범위(Public/Private)나 수정가능여부(final) 등을
잘 생각하고 선언해야겠다. 앞서 위키피디아에도 언급됐듯이, 헬퍼 클래스란 모든 게 정적 메소드일 필요는 없다고 했다.
그렇다는 말은 즉, 정적 메소드가 많을 것이다라는 것이다.
헬퍼 클래스를 보면서 정적 (static) 메소드에 대해 알아야하는데, 이를 공부하다보면 또 Singleton 모델에 대해서 알게 된다.
헬퍼 클래스 또는 유틸리티 클래스를 잘 사용하려면 이 싱글턴 모델을 알아야한다.
결국 모든것은 이어져있다. 그럼 이만..
헬퍼클래스의 예시는 위키피디아 링크에서도 볼 수 있다.
'개발 > C#' 카테고리의 다른 글
C# 과제 (0) | 2020.07.21 |
---|---|
Lambda Expression - 람다식 (0) | 2020.07.21 |
as, is 연산자 (0) | 2020.07.21 |
List - 리스트 (0) | 2020.07.14 |
값형식과 참조형식 (0) | 2020.07.13 |
댓글