어쩌면 가장 좋은 제목이 내가 생각할 수 있지만 내 문제는 이것이다 :출력 계산 전략 문제
내가 입력 한 무리의 소요 C# 응용 프로그램을 설계해야 입력에 대한 몇 가지 계산을 수행하는 무리에 따라 일련의 결과를 얻으려면 규칙을 사용해야합니다.
문제는 규칙이 필요할 때 변경 될 수 있다는 것입니다. 복잡하게하기 위해, 그들 중 많은 것들은 십자가 모양의 룩업과 조건문입니다. 예 :
public string rule_GetFruitForThisSeason(Hamper design)
{
// crosstab of 2 properties of values 400 to 100 and 600 to 500 respectively.
if(design.pty1 > 400 && design.pty > 600) return "Apple";
else if(design.pty1 > 200 && design.pty > 600) return "Pear";
else if(design.pty1 > 100 && design.pty > 600) return "Orange";
else if(design.pty1 > 400 && design.pty > 500) return "Grape";
else if(design.pty1 > 200 && design.pty > 500) return "Berry";
else if(design.pty1 > 100 && design.pty > 500) return "Peach";
}
다음 시즌에는 모든 과일이 다시 바뀔 수 있습니다. (심지어 조건이 바뀔 수도 있습니다.) 이상적으로는 프로그래머가 매 시즌 과일을 바꾸지 않기를 바랍니다. Hamper Designers는 스스로 할 수 있어야합니다.
더 나쁜 아직도 나는 다양한 방법을 통해 생각하고 있고, 현재 내가 일반적으로 수식을 평가하는 능력을 자사의 LOOKUP (용 Excel 사용)하고
public string rule_GetBoxForFruit(string fruit)
{
if(fruit == "Apple" || fruit == "Pear" || fruit == "orange" || fruit == "peach") return "big box";
else return "small box";
}
예를 들어 출력에 의존 규칙, 그리고 수 그런 다음 Excel 결과를 직접 읽습니다. 그러나 여전히 큰 번거로운 작업입니다.
누구나 더 나은 방법으로이 문제에 접근하는 방법에 대한 아이디어가 있습니까? 고맙습니다.
한 단어. 다형성. – Jan
한 단어. 응? 친절하게 설명해 주시겠습니까? 명확히하기 위해 코드에서 정의 할 수있는 고정 된 과일 세트가 없습니다. 미래의 과일은 예측할 수 없습니다. – Jake
기본 규칙을 찾기 위해 더 깊이 파고들 필요가있는 예제 규칙이있는 것 같습니다. 테이블 기반 (조회) 또는 규칙 엔진 일 수 있습니다. –