2010-12-31 4 views
1

우리는 경매 웹 사이트를 만들고 있습니다. 경매에는 여러 유형이 있습니다. 경매 종류에 따라 승자가 선언됩니다.어떤 디자인 패턴을 사용해야합니까? 봄 프레임 워크 사용

예 : - * 경매의 한 가지 유형 : - 더 높은 승리를 입찰 한 사용자. * 다른 유형 : - 최소 입찰가가있는 사용자. * 일부 유형 : - 소유자가 승자를 결정합니다. * 일부 유형 : - 처음 10 명의 입찰자가 경매에서 우승합니다.

Strategy Pattern은 "Auction Winner"를 결정할 모듈을 설계하는 데 적합합니다.

는 그래서 "경매의 유형"을 바탕으로

는, 시스템이 제공됩니다 승자를 선택하기 위해 경매 유형에 따라 필요한 winner.All 매개 변수를 결정하는 적절한 고리즘을 선택합니다. imple winnerDeclare 모듈에 전략 패턴 (AOP 방식 일 수 있음)을 사용하려고합니다.

응용 프로그램은 SpringFramework를 기반으로합니다. 아무도 나에게 위에서 언급 한 문제를 해결할 수있는 우아한 디자인을 제안 할 수 있습니다. 어떤 패턴을 사용해야합니까? AOP에 가야합니까?

필요한 경우 자세한 정보를 제공 할 수 있습니다.

미리 감사드립니다.

답변

3

이 질문과 관련하여 봄 관련 사항은 없습니다. 그렇습니다. Strategy Pattern은 아마도 올바른 선택 일 것입니다.

경매 우승자를 결정하고 하나 이상의 구현을 작성하는 서비스 인터페이스를 생성하십시오. 비즈니스 코드에서, 구현 클래스가 아닌 서비스 인터페이스를 항상 참조하면, 구현 방식 (Spring의 유무에 관계없이)을 쉽게 전환 할 수 있습니다. (인터페이스를 사용한 프로그래밍을 더 잘 이해하기 위해 Joshua Bloch의 Effective Java 읽기)

Spring AOP를 잊어 버리십시오. 그것은 많은 문제를 해결하지만 당신 문제는 아닙니다.문제는 응용 프로그램의 핵심 모듈을 정의하고 함께 연결하는 것입니다 (일반적으로 Spring 또는 다른 DI 컨테이너로 수행됨).

기본적으로 서비스 인터페이스를 만들 때 '무엇을해야합니까? 해야 할 것?' 그리고 인터페이스를 구현할 때 '어떻게해야합니까?'라고 결정할 수 있습니다.

3

이것은 광범위한 질문이며 간단한 대답은 "단순한 객체 지향 구조를 사용하여 문제를 정확하게 모델링하고"여기에 맞는 패턴 "을 적게 사용하는 것입니다. 패턴이 나타날 가능성이 높으므로 바로 이름을 지정할 필요가 없습니다.

또한 Spring을 처음 사용하는 경우를 대비하여 AOP를 잊어 버리는 것이 좋습니다. 지금 당장 당신을 도울 수 없어요. 또한, 그것을 사용하기 위해 AOP를 사용하는 것은 도움이되지 않습니다.

p.s 전략이 여기에 적합합니다.

+0

+1 * 사용을 위해 AOP 사용 * –

0

다음 시나리오를 사용할 수 있습니다.

Bean 목록이있는 주 bean 하나. 각 빈은 흐름 ('최고 입찰가', '최저 입찰가'등)을 나타냅니다. FlowBeans를 호출 할 수 있습니다.
각 flowBean에는 하나 이상의 choiseBeans가 있어야합니다.
choiseBean은 경매의 입력에 따라 flowBean을 실행할지 여부를 결정합니다.

예를 제공 할 수 없어 죄송합니다 ..


추신 : 제 제안 외에, 나는 cherouvim에 동의합니다!

관련 문제