우리는 세 가지 API를 빌드해야하는 소프트웨어 프로젝트를 진행하고 있습니다. 하나는 홈 뱅킹 채널, 하나는 대행사 채널 , 다른 하나 는 모바일 채널입니다.
대행사 API는 모든 기능을 갖추고있어 가장 완벽한 API입니다. 그 다음에는 약간 작은 Home API와 모바일 API가 있습니다.
여기서 설계자는 공통 계층 (모든 API가 공유하는 교차 채널 EJB 서비스)을 만들었습니다. 그러나 API는 다릅니다.
API 간에는 큰 차이가 없습니다. 대기업 팀은 대행사 채널을 시작으로 홈 채널에 맞게 조정하고 있습니다. 우리는 홈 앱에 특별히 객체를 보강하고 있습니다. 그렇지 않으면 코드는 API간에 95 % 유사합니다. API는 Spring MVC를 기반으로 구축되었으며 컨트롤러, 모델 및 일부 유틸리티가 있습니다.
기본적으로 컨트롤러는 BO를 ChannelObject에 매핑하고 (적절한 장소가 아닌 것 같습니다) 일부 추가 유틸리티와 직렬 변환기를 수행합니다. 지금은 모두 중복되었습니다. 그들은 중복의 이유는 API를 독립적으로 원하기 때문이라고 말합니다. "내일 우리가 대행사 나 모바일과 다른 행동을 원한다면 우리는 어려움을 겪지 않을 것입니다."
중복 코드를 수락해야하는 경우가 있습니까?