4

유닛간에 변환이 필요하며 각 유닛의 이름과 정수가 2 개인 정수 부분은 양수 또는 음수 일 수 있습니다. 내 Unit 클래스가 종속성 주입을하고 느슨하게 결합되어야합니다. 예를 들어 미래에 무언가를 추가해야하는 경우이 클래스를 사용하는 다른 클래스를 변경하지 않아도됩니다.C#에서 단위 변환 디자인 패턴

유닛간에 변환하려면 내 단위 클래스에 Convert() 메소드가 있어야합니다. 나는이 링크를 살펴했다 :

를하지만이는 느슨하게 결합 된 것 같다. 나에게이 문제에 대한 권장 디자인 패턴을 알려주세요

,

+1

링크 중 하나도 단위 변환에 대해 이야기하지 않습니다 (유형 변환은 완전히 다릅니다). Unit 클래스에는 어떤 종속 관계가 있습니까? –

+0

작은 변화로 유닛을 구현하는 솔루션을 찾고 있는데 다른 클래스를 크게 변경하지 않고 유닛 클래스를 확장 할 수 있습니다. –

답변

2

가 나는 방법과 변환 할 수있는 장치를 지정하는 방법에 대한 사용자 정의 속성을 만들 것입니다. 그런 다음 변환기 함수는 변환되는 항목에서 단위를 추출하고 리플렉션을 사용하여 해당 단위로 /에서 변환하는 변환 방법으로 해당 클래스를 찾을 수 있습니다.

변환 방법/변환 방법에 사용하는 핵심 측정 단위가 필요합니다. 예 : 메트릭을 선택한 다음 모든 전환이 두 번째 단위로 /에서 메트릭으로 변환/변환됩니다. 그런 다음 유닛 A에서 유닛 B로 이동하려면 A에서 메트릭으로 변환 한 다음 메트릭에서 B로 변환하고 리플렉션을 사용하여 A 및 B 변환기를 선택합니다.

물론 요청에 대한 세부 정보를 너무 많이 제공하지 않으므로 정확히 무엇을하려고하는지 알기가 어렵습니다. 따라서 이것은 "짐작할만한 디자인"입니다. :)

+0

예를 들어, 지금은 그램과 킬로 그램을 가지고 있지만, 나중에 파운드가 필요할 수도 있습니다.이 단위들의 변환이 필요합니다. 소스 코드 예제가 있습니까? 나는 각 단위를 거치고 새로운 전환을 정의하는 것을 좋아하지 않는다. –

+0

누군가 전략 디자인 패턴을 입력하고 여기에서 제거했습니다. 디자인 패턴을 알려주십시오. –

+0

코드 예가 ​​있습니까? –