동일한 코드를 공유 할 두 제품 라인을 연구 중입니다.2 개의 제품 라인이 동일한 코드를 공유합니다
다른 기능의 경우 두 제품 라인이 동일한 인터페이스 (또는 경우에 따라 기본 클래스)를 구현하고 이러한 유형이 Main 클래스 (두 제품 라인 모두에 대해 별도)에서 생성되고 더 다운 스트림으로 전달됩니다.
비즈니스 로직 내부 깊숙한 코드의 경우 제품 라인 전용 코드를 갖는 것이 매우 어렵습니다. if (ProductLine == "ProductLine1") 및 다른 방법론을 사용하지 않으려합니다.
그래서 NewObject1(), NewObject2() 등을 반환하는 정적 메서드가있는 Factory 클래스를 구현할 계획입니다. 이 Factory 클래스는 Main 클래스에 Factory.RegisterClient (ProductLine1)로 등록됩니다.
따라서 위의 방법을 사용하면 공장 (ProductLine1Factor & ProductLine2Factory가 내부적으로 포함되어 있음)에서 생성 할 개체 유형을 알 수 있습니다.
이 문제에 대한 더 나은 접근 방법을 알고 계십니까? ProductLine1은 이미 존재하고 ProductLine2는 새로운 것입니다 (그러나 ProductLine1과 90 % 유사 함). 두 제품 라인이 존재할 정도로 급격한 리팩토링을 할 수는 없습니다. 가능한 한 최소한의 침입 코드 변경으로 처리하기를 원합니다.
팩토리 접근 방식은 일반적으로 인터페이스를 노출하지만 인터페이스의 문제는 필요한 정적 유형을 노출 할 수 없다는 것입니다.
일부 전문가가 일부 의견을 밝히면 정말 감사하겠습니다.
감사합니다. Wiktor. 화합은 실제로 좋은 선택이기도합니다. – scriptuser