2012-03-14 6 views
1

저레벨 프로그래밍이있는 장치가 있습니다. 모든 새로운 장치 및 업그레이드 버전 번호를 제공하고 있습니다. 또한이 장치들과 통신하는 프로그램 (이 장치들에 대한 정보 검색)도 있습니다.어떤 디자인 패턴이 유용합니까?

예 :

v1.3|Time|Conductivity|Repetation|Time|Humadity|1st Nozzle Heat;2nd Nozzle Heat|Pressure|EndOfMessage 

내 테스트 응용 프로그램이 정보를 검색하고이 장치의 작동 변경됩니다 : 장치 프로그램의

v1.2|Time|Conductivity|Repetation|Time|Heat of First Nozzle|Pressure|EndOfMessage 

하지만 새 버전 : v1.2 문자열의이 종류를 보냅니다. 일부 작업에는 v1.2 장치가 포함되지 않습니다. 나는이 상황에서 전략 디자인 패턴이 유용하다고 생각하지만 확실하지 않다. 어떤 디자인 패턴을 사용해야합니까?

답변

0

나는 공장 전략과 함께 전략을 통해 목표를 달성 할 수 있다고 생각합니다.

5

예, Factory 패턴을 사용하여 특정 파서 인스턴스를 만들지 만 Stategy 패턴의 경우에는 유용합니다.

귀하의 코드는 다음 일반적으로 같은 것을 보일 것입니다 : 프로젝트의 크기에 따라

public class ParserFactory 
{ 
    public static IParser<DeviceInfo> CreateFor(Version version) 
    { 
     // instantiate proper parser based on version 
    } 
} 

: 몇 파서 간단한 프로젝트의

public DeviceInfo Parse(InputData input) 
{ 
    var version = versionParser.Parse(input); 
    var concreteParser = parserFactory.CreateFor(version); 
    var data = concreteParser.Parse(data); 
    return data; 
} 

을, 당신은 당신의 파서 공장을 하드 코딩 할 수있다 파서에 대한 플러그인 패턴을 사용하기로 결정할 수도 있습니다 (System.AddIn에는 플러그인 관리에 유용한 클래스가 포함되어 있습니다).

+0

대단한 답변입니다. 덜 기술적 인 http://en.wikipedia.org/wiki/Facade_pattern을 지적 할 것입니다. –

관련 문제