나는 구현하고있는 흐름도가 있으며 사용자 입력 및 일부 처리 결과에 따라 4 ~ 5 개의 경로가 있습니다. 자연스럽게, 나는이 모든 논리를 내 Windows 형식에서 원하지 않는다. 단지 형식의 클래스에 메서드를 호출하기를 원한다. 내 비즈니스 논리 클래스 참조를 System.Windows.Forms에 표시하고 대화 상자 및 메시지 상자를 표시하여 처리하고 결과를 반환하는 데 필요한 입력을 얻으려면 나쁜 디자인입니까?비즈니스 논리 개체에 입력을 요구하는 것은 좋지 않은 디자인입니까?
답변
예, 이것은 잘못된 디자인입니다. 수업은 양식과 의사 소통하고 데이터를 다시 가져올 수있는 수단을 제공해야합니다. 이벤트를 만들고 Form
에 가입하여 사용자 정의 EventArgs
클래스의 대화 상자를 만드는 데 필요한 정보를 얻으십시오. 입력을 얻은 후 두 번째 이벤트를 통해 동일한 클래스를 추가 정보와 함께 푸시하면됩니다.
이것은 MVP 패턴과 유사해야합니다.
예, 이것은 좋지 않은 아이디어입니다. 효과적으로 비즈니스 논리를 프레젠테이션과 매우 밀접하게 결합하고 있습니다. 다른 상황에서 쉽게 비즈니스 로직을 재사용 할 수 있으며 비즈니스 로직을 건드리지 않고도 UI를 대체 할 수는 없습니다.
UI 및 비즈니스 로직 레이어가 통신하고 UI 레이어가 UI를 처리하도록해야합니다.
나쁜 디자인이라고 생각합니다. 응용 프로그램의 구성 요소를 분리 할 때는 다른 컴퓨터에서 실행할 수 있도록 충분히 분리시켜야합니다.
예. 왜냐하면 당신의 busienss 객체가 단순히 비즈니스 객체가 아니라는 것을 의미하기 때문입니다.
MVVM 패턴을 사용하고 로직을 viewmodel에 넣습니다.
정확하게 사용 된 정확한 패턴이 잘 검사 된 패턴을 사용하는 것보다 덜 중요하다고 생각하지만 MVC가 WinForms에 더 적합 할 것으로 판단됩니다. –
이벤트 기반 MVP 패턴도 옵션이라고 생각합니다. 이 뷰는 이벤트를 발생시키고 발표자는 마법적이고 신비한 방식으로 이벤트를 처리합니다. – nick
UI 나 UI가 전혀없는 상황 (예 : 서버 또는 일괄 처리)에서 비즈니스 로직을 실행해야 할 수 있으므로 좋지 않은 디자인입니다. 이것이 비즈니스 로직과 UI의 분리입니다. 가능한 경우 UI 클래스에서 모든 필요한 사용자 입력을 먼저 얻은 다음 비즈니스 논리에 따라 작업을 전달하는 것이 좋습니다. 그러나 비즈니스 로직 프롬프트에서 더 많은 정보를 얻으려면 비즈니스 로직 API가 콜백 메소드 델리게이트를 사용하는 것이 더 좋습니다.이 콜백 메소드 델리게이트는 추가 입력을 요청하기 위해 호출 할 수 있습니다. 그런 다음 UI 레이어가 사용자에게 요청하는 최선의 방법을 결정할 수 있습니다.
- 1. 내 웹 사이트에 1 ~ 2 분마다 cron 스크립트를 실행하도록 요구하는 것은 좋지 않은 디자인입니까?
- 2. DAO가 트랜잭션을 관리하는 것이 좋지 않은 디자인입니까?
- 3. PHP/MYSQL : 사용자 입력을 살균하는 것은 좋지 않은 생각입니까?
- 4. Enums의 비즈니스 논리?
- 5. WCF 비즈니스 논리 처리
- 6. 비즈니스 논리 클래스 이름 지정
- 7. 서버 프로세스에서 작업자 스레드를 만드는 것은 좋지 않은 생각입니까?
- 8. 사용자가 자신의 스타일 시트를 추가하도록하는 것은 좋지 않은 생각입니까?
- 9. 좋은 디자인입니까?
- 10. 저장소 패턴 및 비즈니스 논리
- 11. Microsoft CRM에서 비즈니스 논리 구현
- 12. 비즈니스 및 응용 프로그램 논리?
- 13. 기본 페이지 및 하위 페이지에서 다른 바닥 글 위치를 사용하는 것이 좋지 않은 디자인입니까?
- 14. .NET 용 표준 비즈니스 논리 데이터 클래스
- 15. 저장소의 중첩 클래스 및 비즈니스 논리?
- 16. codeiginter - 비즈니스 논리 - 컨트롤러, 모델 또는 라이브러리?
- 17. 생성자의 비즈니스 논리 - C#/Linq to Sql
- 18. WCF 서비스에서 비즈니스 논리 계층 노출
- 19. 객체 현지화 문자열이있는 비즈니스 지향 논리?
- 20. 비즈니스 논리 클래스에서 asp.net mvc 페이지 리디렉션
- 21. MVC/MVP/MVVM - 비즈니스 논리 구성 방법
- 22. 모노가 적합하지 않은 것은 무엇입니까?
- 23. 예기치 않은 기능이 버그 또는 단지 디자인이 좋지 않은 경우
- 24. 개체에 비즈니스 로직을 기반으로하는 속성이 있어야합니까?
- 25. Value 개체에 포함될 비즈니스 로직의 양은 얼마입니까?
- 26. 비즈니스 개체에 데이터베이스 연결을 캡슐화했는지 여부를 확인하려면?
- 27. 텍스트 그림자가 좋지 않은 글꼴 - 얼굴이 좋지 않음
- 28. 코드에서 유효하지 않은 비즈니스 객체를 어떻게 다루어야합니까?
- 29. 개체에 스크립팅이 가능하다는 것은 무슨 의미입니까?
- 30. 개체에 자바 스크립트가없는 것은 무엇을 의미합니까?
MVP 패턴 나는 믿습니다. – nick
이것은 무엇을 해야할지에 대한 나의 첫 번째 성향이었습니다. 나는 그것을 검증 할 사람을 찾고있는 것 같아. 감사. – Keith
네, 그게 사실이어야합니다. 그러나 예제가 더 적합하다고 생각합니다. – Femaref