2016-09-01 3 views
1

나는 공장을 가지고 어떤 종류의 어댑터.공장 패턴 선택적 매개 변수와 함께

이 상황에서 항상 매개 변수가 필요하지 않을 때 최선의 방법은 무엇입니까?

도움 주셔서 감사합니다.

+0

이것은? https://msdn.microsoft.com/en-us/library/dd264739.aspx –

답변

2

Specalise을 예를 들어, 많은 공장을합니다

public static class MidAdapterFactory 
{ 
    public static IAdapter GetAdapter(AdapterType claimType, int mid) 
    { 
    } 
} 

public static class TidAdapterFactory 
{ 
    public static IAdapter GetAdapter(AdapterType claimType, int tid) 
    { 
    } 
} 

또한 빌더 패턴을 고려하십시오.

+0

고마워, 나는 더 전문화 된 공장으로 갈 것이다. – Andrew

0

optional arguments을 살펴보십시오. 당신은 당신이 그들에게 필요하지 않은 경우 다음을 생략 매개 변수를 기본값을 줄 수

public static class AdapterFactory 
{ 
    public static IAdapter GetAdapter(AdapterType claimType, 
             int mid = 0, 
             int tid = 0, 
             int siteID = 0, 
             string version = null) 
    { 
     // Create adapter here 
    } 
} 

지금 너무로 사용할 수 있습니다 :

var adapter1 = AdapterFactory.GetAdapter(AdapterType.Regular, 1000, 50, 10, "1.0.0.0"); 
var adapter2 = AdapterFactory.GetAdapter(AdapterType.Minimal);