답변:
많은 문제가 특정 문제에서 왔기 때문에 독특한 해결책이 있다고 생각하지 않습니다.
Model View Controller 패턴을 사용할 수 있습니다. 이렇게하면 문제가 항상 규칙을 따르는 동작 인 "컨트롤러에서 동작을 구현하는 방법"으로 이동 (충돌)합니다.
우리가 매우 간단한 규칙에 대해 이야기하지 않는 한, 규칙을 구성하는 방식은 표현력에 문제가 있습니다. 당신은 항상 단순 (구조화)되고 표현 적 (즐거운 규칙 작성)이라는 상충되는 요구에 직면합니다.
모델이 상태, 즉 규칙이 적용되는 상황 을 공식화하기 때문에 MVC를 사용하면 작업이 간단 해 집니다.
더 간단한 전환 가능한 동작의 관점에서 복잡한 동작을 구성하기 위해 전략 패턴 및 / 또는 상태 패턴 을 사용하여 컨트롤러를 구현하는 것이 유용 할 수 있습니다. 체인의-resposibility 패턴 의 "상태"부분적으로 "상태"모델의 의미를 겹쳐 있기 때문에 상태 머신은 신중하게 사용되어야하는 동안 규칙을 표현하는 데 도움이 될 수 있습니다.
Controller 내 에서 Command 패턴을 사용하면 Controller Resposliblities (명령은 모델 처리 방법을 알고 있음)를 줄이고 Controller에서 실행 취소 / 다시 실행 기능을 쉽게 추가 할 수 있습니다 .
어쨌든 디자인 패턴을 지침으로 사용하십시오. 바퀴, 특히 사각형 바퀴를 재발 명하는 것을 피하는 것이 유용하지만 모든 문제의 해결책이 여러 바퀴로 구성된 것은 아닙니다.
나는 최고인지 잘 모르겠지만 보통 Observer pattern을 사용 합니다. 그것은 나를 위해 충분히 잘 작동했습니다.
여러 번 작업을 수행하지 않았다면 항상 스파게티 코드로 끝납니다. 실제로이 시점에서 방금 시작한 것입니다. 예비 사양의 대략적인 초안입니다. 여기에서 다른 조언 중 일부를 확인하고 심각한 재 작성을 수행하십시오. 그리고 좀 더 재 작성하고 .... 개인적으로, 나는 코드를 정말로 훌륭한 모양으로 만들지 또는 재 작성에 질리게 될지 확신하지 못하지만 결국에는 올바르게 처리 하는 것 같습니다 .
두 끝에서 문제를 해결하십시오. 전반적인 디자인을 이해 하고 간단한 집안일을 처리하고 올바르게 만드는 작은 부품을 선택하십시오. 그런 다음 양쪽 끝에서 중간 방향으로 작업하십시오. 그런 다음 가운데에서 양쪽 끝으로 작업하십시오. 그런 다음 위에서 아래로, 위에서 아래로. 그런 다음 전체 과정을 반복하십시오.
본질적으로, 당신이 가진 것은 클래스 모음입니다. 클래스 A를 고려하십시오. 클래스 A가 제대로 구축되면 클래스 A를 사용하는 클래스는 좋든 나쁘 든 자동으로 더 잘 작동합니다. 클래스 A가 클래스를 잘 사용한다면, 사용 된 클래스는 더 좋을지 모르지만 더 좋을 것 입니다. 따라서 수업을 최대한 잘 정리 한 다음 각 수업이 가능한 최고의 수업인지 확인하십시오.
당신이 할 수있는대로 그것을 얻는 것이 중요합니다. 당신이 그것을 버릴 때까지 나쁜 코드는 당신을 괴롭힐 것입니다. 소프트웨어를 사용하면 약간의 추가 연마가 항상 유리 합니다. (아무도 코드를 사용하지 않는 한 ....)
요약 : 다른 답변에 제공된 실제 조언을 확인한 다음 원하는 것을 얻을 때까지 코드를 다시 작성하십시오.