2017-09-05 51 views
0

我正在開發一個應用程序,我應該爲模型保存信息。具體而言,我有一個應答模型,用於存儲問題輸入的值。然而,有些問題接受多個答案(複選框),所以我必須有條件以不同的方式處理這個數組。我想知道是否有模式(也許是策略模式?)來存儲這些數據,取決於同一模型中的問題類型(Answer模型)。 謝謝大家。正確的模式來保存一個模型,適用於不同的表

回答

1

聽起來像一個戰略模式。

您可以用這種方式設計你的類:

public interface Question { 
    public String getName(); 
    public AnswerType getAnswerType(); 
} 

public interface Answer { 
    public void accept(Question question); 
    public String getValue(); 
} 

public enum AnswerType { 
    Singe, 
    Checkbox 
} 

現在你可以有Answer多個實例可以接受某種類型的吧。

public class MultipleValuedAnswer implements Answer { 
    // Implementations. 
} 

public class SingleValuesAnswer implements Answer { 
    // Implementations. 
} 

而且您可以將接受答案的任務委託給不同的班級。

public class AnswerAcceptor { 
    public void acceptAnswers(Question question) { 
     if (question.getAnswerType() == AnswerType.Single) { 
      new SingleValuedAnswer().accept(question); 
     } else { 
      new MultipleValuedAnswer().accept(question); 
     } 
    } 
} 

可能有更好的方法來做到這一點,我提出了一種可能性。

+0

我認爲這是一個好主意,按照你的方式。感謝所有。 –

+0

您可以隨時接受並點贊答案,幫助其他人輕鬆地爲相關內容提供資金(並幫助我地球日代表xD) – Jay

相關問題