Type Conveter의 네이밍 컨벤션은 어떻게 정해야 할까?
.Net/.Net Framework Design Guide Line 2010/02/16 13:44프레임워크 또는 라이브러리 디자인에서 타입 변환 메소드 의 Built in 네이밍 컨벤션을 살펴보고, 디자인 시에 Type1 To Type2 보다는 Type2 From Type1 을 사용하는 것에 대해 생각해 보자.
.NET 타입 변환의 형태의 예시
1. 인스턴스로 부터 변환
object.ToString();
StringBuilder.ToString();
2. Convert 클래스
int number= Convert.ToInt32(Object value);
3. Type 메소드
int number= Int32.Parse(string s);
4. Type TryParse 패턴
int number;
bool result = Int32.TryParse(value, out number);
TryParse를 제외한 모든 네이밍 컨벤션이 Instance.ToTypename() 형태 입니다. 속성으로는 Primative Type 간의 변환이라는 것이 특징입니다.
이제 자세히 살펴 봅시다.
1번의 경우 표현식 자체가 내장된 값 자신이며, 그것이 바로 왼쪽의 변수에 대입 됩니다.
2. 3번 은 입력되는 타입을 반환되는 타입으로 변환 대입합니다.
4번은 TryParse 패턴으로 반환값이 두개( 메소드 성공 실패와, 변환된 값 ) 인 관계로 특수한 경우 입니다.
1,2,3번의 경우로 볼때 To 라는 네이밍이 쓰였지만 Context 로는 [변수타입] = To [반환타입] (입력값) 입니다.
대입 assign 은 왼쪽에서 오른쪽으로 읽으면서 들어가면서 자연스러운 인지를 형태 입니다.
인지의 순서는 [3: 변수 타입] = To [2: 반환타입] (1: 입력값) 오른쪽에서 왼쪽으로 한번의 일렬 인지를 요구합니다.
결론
1. Type에 Extention 으로 추가되는 네이밍으로는 ToTypename(this Type, o value) 를 사용 합니다.
2. 내장된 값을 변환해서 반환 할때에는 instance.ToTypename() 을 사용 합니다.
3. Helper 클래스의 메소드 네이밍으로는 Helper.Type2FromType1(value) 를 사용 합니다.
혼란스러운 네이밍, 왜 Type1 To Type2 보다 Type2 From Type1 이어야 하는가?
C의 문법 규칙으로 String 을 Inteager로 변환하는 함수인 atoi(const char *string )
char *s ;
s = "1234";
int number = atoi(s);
[변수타입] = [입력타입] to [반환타입] (입력값) 의 패턴을 형성합니다.
[4: 변수타입] = [1: 입력타입] to [3: 반환타입] ( 2: 입력값) 으로 건너뛰기 + 왼쪽에서 오른쪽 + 오른쪽에서 왼쪽 의 인지를 요구합니다.
Type2FromType1의 형태로 네이밍 된다면
atoi -> ifroma
char *s ;
s = "1234";
int number = ifroma(s);
[변수타입] = [반환타입] from [입력타입] (입력값) 을 형성하며
[4: 변수타입] = [3: 반환타입] from [2: 입력타입] (1: 입력값) 으로 오른쪽에서 왼쪽으로 한번의 인지 과정만을 요구 합니다.
'.Net > .Net Framework Design Guide Line' 카테고리의 다른 글
| Type Conveter의 네이밍 컨벤션은 어떻게 정해야 할까? (0) | 2010/02/16 |
|---|---|
| 객체지향 방법론과 프레임워크 디자인 vs. 어플리케이션 디자인 차이 (3) | 2010/02/03 |
| Entity Framework 에 대한 변론 (4) | 2010/01/20 |
| LINQ to SQL Behind the Scene (0) | 2009/12/30 |
| Entity Framework의 Lazy Loading에 관하여 (2) | 2009/04/03 |
| Dictionary<TKey, TValue> VS. Hash Table 성능 이슈 (0) | 2008/12/16 |
현재글 : Type Conveter의 네이밍 컨벤션은 어떻게 정해야 할까? posted By - 반더빌트 2010/02/16 13:44



이올린에 북마크하기
이올린에 추천하기