2008-09-17 7 views
2

내가 작성한 응용 프로그램에는 Policy 클래스가 있습니다. 4 가지 유형의 정책이 있습니다. 각 Policy는 PolicyA> PolicyB> PolicyC> PolicyD와 같은 기타 Policy에 대해 가중!됩니다.어쨌든 누구의 책임입니까?

누구의 책임은 하나의 정책이 다른 정책보다 우수하다는 논리를 구현하는 것입니까? 나의 초기 생각은>와 < 연산자를 오버로드하고 정책 유형 자체에서 로직을 구현하는 것이다.

SRP를 위반합니까?

답변

6

저는 PolicyComparer 클래스가 평가를 수행해야한다고 생각합니다.

0

나는 그러나 이것의 확장은 더 이상

많은 분명히 당신이 과부하에 바른 길에 생각하는 경우 (A> B || B> C || C> D) ...

0

클래스에 PolicyWeight 특성을 저장할 수도 있습니다.이 특성은 쉽게 비교할 수있는 간단한 기본 제공 형식 (int, unsigned int, ...)입니다.

0

Certianly 전용 비교 자 클래스입니다. 추가 로직을 제공해야하는 경우 (예 : 정책을 비교하는 두 가지 또는 세 가지 방법),이 방법을 사용하면 유연성이 향상됩니다 (연산자 오버로드를 통해 달성 할 수 없음).

0

PolicyComparator 클래스가 필요합니다. < 및>를 재정의하려면 Policy base 클래스에서 재정의하고 PolicyComparator를 사용하도록 구현하십시오.

관련 문제