DesignPatterns : 마법사 스타일 사용자 인터페이스에 사용하기에 가장 적합한 것은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/762008

문제

마법사 스타일 사용자 인터페이스를 구현하고 있습니다. 사용자가 마법사를 통해 흐르면서 각 화면에서 선택한 선택에 따라 다음을 클릭하면 사용자는 특정 마법사 화면 세트를 거쳐야합니다.

이것은 ASP.NET MVC에 내장되어 있습니다. 마법사에있는 일련의 단계의 논리를 구현하는 데 어떤 디자인 패턴이 가장 적합한 지 궁금합니다. 다시, 그들은 선택에 따라 마법사를 통해 여러 경로를 가지고 있습니다.

링크 된 목록을 사용할 수 있습니까? "명령 디자인 패턴"? 추천 메뉴가 무엇인가요?

다른 방법으로 말하면 : 마법사의 특정 단계에서 사용자가 선택한 내용에 따라 마법사의 다음 단계가 무엇인지 결정하는 논리를 어디에서/어떻게 추상화/캡슐화합니까?

도움이 되었습니까?

해결책

다른 방법으로 말하면 : 마법사의 특정 단계에서 사용자가 선택한 내용에 따라 마법사의 다음 단계가 무엇인지 결정하는 논리를 어디에서/어떻게 추상화/캡슐화합니까?

이를 수행하는 한 가지 방법은 마법사, 단계 및 제품 클래스를 모델링하는 것입니다. 아마도 이렇게?

public class Wizard
{
  public Step forward() {//...}

  public Step backward() {//...}

  public Step current() {//...}

  public Product getProduct() {//...}
}

public class Step
{
  public String name() {//...}

  public void commit(Product product) {//...}

  public void rollback(Product product) {//...}
}

public class Product
{
  //...
}

마법사의 목적은 제품 (자동차, 컴퓨터, 휴가 등)을 만드는 것입니다.

이 시나리오에서는 마법사가 건축하는 제품의 상태를 기반으로 다음 단계를 결정하는 마법사입니다. 마법사는 a처럼 행동 할 것입니다 건축업자 UI의 통제하에 감독이자 마법사에게 전환 할시는 언제 그리고 어떤 방향으로 전환 해야하는지 알려줍니다. 다음 단계가 실제로 무엇인지 결정하는 것은 마법사에게 달려 있습니다. 여러 분기점이 지원 될 수 있지만 그 구현은 마법사 내부에 숨겨져 있습니다.

단계는 인스턴스가 될 것입니다 명령 패턴 실행 취소/레디 기능.

다른 팁

"상태"사용자가 마법사를 통해 앞뒤로 탐색 할 수있게하려면 패턴이 의미가있을 수 있습니다.

워크 플로 패턴도 의미가있을 수 있습니다. Windows Workflow Foundation 사용을 조사 할 수도 있습니다.

나는 그것을 단순하게 유지하고 싶습니다. 나는 단계 번호로 건축하는 대상에 대한 가치를 설정했기 때문에 보험 정책을 구축하는 경우 정책에 어떤 단계가 있는지를 나타내는 재산이있을 것입니다. 그런 다음 라우터 인 단일 메소드가 있고 정책을보고 다음에 보낼 위치를 결정하면 라우터에 추가 로직을 구축하여 단계를 건너 뛰거나 각 단계 메소드에 로직을 넣고 라우터로 다시 리디렉션 할 수 있습니다. 방법.

나는 Beau에 동의해야합니다.

실제로, 내비게이션 로직에 대한 복잡한 규칙 세트가 필요한 경우, 마법사는 마법사가 있지만 후드 아래에는 마법사가 없습니다.

빌드를 시도하는 것이 실제로 마법사 인 경우 각 화면은 최대 2-3 개의 다른 화면 (IMO)으로 유입되어야합니다. 이는 매우 간단한 구조 (데이터베이스, 정적 구성 파일)로 쉽게 저장할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top