2012-08-24 1 views
0

좋은 모델을 결정하려고 할 때 복잡한 시나리오가 있습니다. 기본 개념은 동일한 도메인에서 작동하는 여러 응용 프로그램에서 공유하는 비즈니스 논리 계층을 가지고 있다는 것입니다. 특정 사소한 기능 (예 : 보안 및 사용 가능한 정보)은 응용 프로그램마다 다릅니다.여러 응용 프로그램의 핵심 비즈니스 논리 및 전문 분야를 모델링하는 방법은 무엇입니까?

각 응용 프로그램 내에서 사용할 특정 응용 프로그램 클래스가 있습니다 (공장에서 제공함). 이렇게하면 각 응용 프로그램 내에서로드 된 객체 만 현재 응용 프로그램과 관련된 유형으로 유지됩니다.

내가 겪어 본 문제는 코어 로직 클래스 A와 응용 프로그램 특정 버전 A에서 상속 한 코어 로직 클래스 B가있는 경우, 응용 프로그램 특정 버전의 B가 두 가지 모두 동작하도록하는 방법이 필요하다는 것입니다.

나는 이것이 고전적인 다중 상속 문제의 일부라는 것을 알았지 만, 나는 누군가가 대체를위한 아이디어를 가지고 있는지 여기에서 확인할 것이라고 생각했다. 애플리케이션 특정 및 코어 공유 기능을 모두 허용하는 모델.

다른 대안은 응용 프로그램 특정 코드에서 상속을 단순히 허용하지 않고 공통 응용 프로그램 특정 코드를 관련이없는 특정 응용 프로그램 관련 리프 모두가 사용하는 공유 라이브러리에 작성하도록 요구하는 것입니다.

+0

귀하의 질문에 다소 모호하게 들립니다. 작은 구체적인 예를 제공해 주시겠습니까? 내가 관심을 갖는 질문은 "코드의 변경 사항은 가까운 장래에 어떻게 할 것인가, 어떤 종류의 디자인은 유지 통증을 줄이는 지"에 관한 것입니다. – Samee

+0

그것은 광범위한 질문입니다. 일반적으로 응용 프로그램 간의 차이점을 추상화하여 응용 프로그램간에 공유 핵심 비즈니스 계층을 사용하면서 응용 프로그램 특정 기능을 지원하는 방법을 찾고 있습니다. 두 응용 프로그램의 좋은 예가 프런트 엔드 웹 사이트, 백 엔드 웹 서비스 및 Windows 서비스 일 수 있습니다. 일부 비즈니스 로직의 정확한 요구와 동작은 각기 다른 애플리케이션에서 약간 다를 수 있지만 대부분의 기능이 일반적입니다. –

+0

@AJHenderson 최근 질문에 도움을 주셨습니다. 당신이 여기서도 인터페이스가 필요하다는 소리가 나에게 들린다. P –

답변

0

결과적으로 각 응용 프로그램에 대한 상속이 leafs로 제한되어야하고 포함 된 클래스로 분할 될 필요가있는 여러 leafs에 적용되는 응용 프로그램이 있습니다. 이상적은 아니지만 다중 상속없이 수행 할 수있는 최상의 방법입니다.