0

시나리오를 디자인하는 데 혼란스럽고 문제가 있습니다.코드에서이 흐름을 해석하는 방법은 무엇입니까?

알고리즘은 수학 시스템 용입니다.

INPUT :

  • 레벨 : 수학 문제의 난이도는
  • 수량 : 문제의 수는

가 OUTPUT :

  • 문제 :이 될 것입니다 Pr의 IEnumerable oblem

나는 경험이 부족합니다. 공정의 중간 단계는 공장과 같을 것 같습니다.

사양에 따라 문제가 발생합니다. 예를 들어 추가 문제에 대한 문제 모델이 있다고 가정합니다.

public class AdditionProblem : Problem 
{ 
    public double Number1 { get; set; } 
    public double Number2 { get; set; } 
} 

문제를 생성하려면 공장에서 문제의 사양을 알아야합니다. 입력에 초보자 수준이 표시되면 문제는 10에서 90 사이의 양의 정수 여야하며 고급 수준을 선택하는 경우 문제를 생성하는 사양은 음수 및 양수 여야하며 6 자리까지이어야합니다.

내가 생각하기에 공장은 이미 사양을 알고 있어야합니다 (나는 IDictionary라고 생각합니다). 이 첫 번째 디자인을 도와 주시면 나중에 개발할 수 있습니다. 이것은 내가 잃어버린 첫 번째 부분입니다.

전체 코드가 필요하지 않습니다. 아이디어를 얻으십시오.

UPDATE : http://sdrv.ms/PKZsJ6이 , 건의 또는 의견을 알려 주시기 바랍니다 :

가 여기에 현재 프로젝트의 링크입니다.

+0

은 숙제 문제입니까? –

+0

아니요, 제가 구축하기로 결정한 교육용 소프트웨어입니다. 나는 이런 소프트웨어를 만들었지 만, 마지막 것은 유연하고 메인 테이블이 아니기 때문에 괴물이되었습니다. 그래서 저는 객체 지향적 인 좋은 습관으로 다시 시작하고 싶습니다. –

+0

게시물을 현재 코드로 업데이트했습니다. 체크 아웃하십시오. –

답변

1

응용 프로그램의 디자인에 접근하려면 세련된 방식으로 가야합니다.

첫 번째 단계로 좋은 아키텍처를 사용하려면 문제를 분리해야합니다. 예를 들어 여기에는 두 가지 수준의 우려 사항이 있습니다 (적어도 문제 설명에서). 문제 용기의 정의에 대한

  1. 프레임 워크. 즉, 보여 주신 수업.
  2. 내용을 정의하기위한 프레임 워크. 컨테이너에 데이터를 추가하는 로직입니다. 예를 들어 초보자에게 양수를 채우는 로직입니다.

두 개의 서로 다른 하위 시스템으로 분리 할 수 ​​있으며 적어도 컨테이너는 내용을 알 필요가 없습니다.

이제이 두 가지를 바인딩 할 수있는 컨트롤러가있을 수 있습니다. 그러나 컨트롤러는 각 하위 시스템의 하위 수준에 대한 정보를 가지고 있으면 안됩니다.

이제 컨테이너의 정의에 도달하면 언급 한 것처럼 공장과 같은 패턴을 생각할 수 있습니다.

관련 문제