2.Model-View-Controller
Creating a New Class
Question 이라는 모델 클라스를 만든다.
public class Question {
private int mTextResId;
private boolean mAnswerTrue;
public Question(int textResId, boolean answerTrue) {
mTextResId = textResId;
mAnswerTrue = answerTrue;
}
}
Question 이라는 오브젝트는 문제의 내용(mTextResId)과 그 문제의 정답(mAnswerTrue)의 member variables가 있다.
Figure 2.4 Object diagram for GeoQuiz
이렇게 Controller의 역할을 하는 MainActivity (책에선 QuizActivity)에서는,
- Question 이라는 모델을 써서 여러가지 데이터를 질문의 형식으로 정리해서 저장하고,
- Resource Id를 써서 화면에 보이는 레이아웃들을 가져다 사용한다.
Model-View-Controller and Android
책에서의 Model-View-Controller에 대한 설명
MVC 형식을 쓰면 좋은점
-
어플리케이션을 추상적인 개념에서 이해하고 디자인하는데 도움이 된다.
→ 레이어별로 나눠서 생각할 수 있다.
-
독립화된 클래스들은 활용성이 높다.
→ 클래스가 맡은 한 임무를 어떤상황에서도 정확히 수행한다면 똑같은 임무가 필요할 때 다른곳에서 같은걸 사용할 수 있다.
Updating the View Layer
View layer에 NEXT 버튼을 추가해보자.
이런식으로 전체를 윗줄부터 삼등분하면 질문(TextView), 정답 버튼들(두개의 버튼이 있는 LinearLayout), 다음 질문 버튼(Button)이 있는 LinearLayout이라는걸 볼 수 있다.