Notice
Recent Posts
Recent Comments
Link
투케이2K
51. (TWOK/ALGORITHM) [Android] 패턴 - MVC (모델 , 뷰 , 컨트롤러) 형태 로직 구현 실시 본문
투케이2K 알고리즘
51. (TWOK/ALGORITHM) [Android] 패턴 - MVC (모델 , 뷰 , 컨트롤러) 형태 로직 구현 실시
투케이2K 2022. 8. 22. 16:52[환경 설정 및 설명]
언 어 : Android (Java)
설 명 : 패턴 - MVC (모델 , 뷰 , 컨트롤러) 형태 로직 구현 실시
[요약 설명]
/**
* TODO [클래스 설명]
* // -----------------------------------------
* 1. MVC 패턴 동작 수행 클래스
* // -----------------------------------------
* 2. MVC 구성 :
* - M (모델) : 데이터 조작 (저장, 호출) 관련 클래스
* - V (뷰) : 사용자에게 표시되는 화면 (안드로이드 XML 레이아웃 / 사용자 인터페이스 제공)
* - C (컨트롤러) : 모델 , 뷰 를 연결하는 브릿지 (다리) 역할 (안드로이드 Activity 및 Fragment 클래스)
* // -----------------------------------------
* 3. MVC 동작 :
* - 사용자가 UI 화면 확인 (뷰)
* - 컨트롤러를 통한 이벤트 동작 (뷰 <-> 컨트롤러)
* - 컨트롤러는 모델 데이터 설정 (컨트롤러 <-> 모델)
* - 컨트롤러는 모델에서 설정한 데이터를 얻어온다 (컨트롤러 <-> 모델)
* - 컨트롤러에서 얻어온 데이터를 사용해 사용자 UI 화면에 표시 (컨트롤러 <-> 뷰)
* // -----------------------------------------
* 4. MVC 참고 사항 :
* - 컨트롤러는 모델, 뷰를 연결하는 브릿지 역할을 수행
* - 뷰는 사용자 UI 화면을 보여주는 것이며, 직접적으로 모델에 접근 불가
* - 모델은 데이터 저장, 호출, 데이터 가공 등 비즈니스 로직을 작성할 수 있으며, 직접적으로 뷰에 접근 불가
* // -----------------------------------------
* */
[프로젝트 구성]
[Model : 소스 코드]
package com.example.testapp.MVC;
public class Mvc_Model {
// TODO [전역 변수 선언]
private String name = "";
private int age = 0;
// TODO [클래스 생성자 초기화]
public Mvc_Model(String name, int age){
this.name = name;
this.age = age;
}
// TODO [get 데이터 호출 메소드 정의]
public String getUserInfo(){
return "이름 : " + String.valueOf(name) + " / " + "나이 : " + String.valueOf(age);
}
}
[View : 소스 코드]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="200dp"
android:text="TEST"
android:textAlignment="center"
android:gravity="center"
android:textSize="20dp"
android:textStyle="bold"/>
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="100dp"
android:text="버튼"
android:textAlignment="center"
android:gravity="center"
android:textSize="20dp"
android:textStyle="bold"/>
</LinearLayout>
[Controller : 소스 코드]
package com.example.testapp.MVC;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.testapp.R;
public class Mvc_Controller extends AppCompatActivity {
/**
* TODO [클래스 설명]
* // -----------------------------------------
* 1. MVC 패턴 동작 수행 클래스
* // -----------------------------------------
* 2. MVC 구성 :
* - M (모델) : 데이터 조작 (저장, 호출) 관련 클래스
* - V (뷰) : 사용자에게 표시되는 화면 (안드로이드 XML 레이아웃 / 사용자 인터페이스 제공)
* - C (컨트롤러) : 모델 , 뷰 를 연결하는 브릿지 (다리) 역할 (안드로이드 Activity 및 Fragment 클래스)
* // -----------------------------------------
* 3. MVC 동작 :
* - 사용자가 UI 화면 확인 (뷰)
* - 컨트롤러를 통한 이벤트 동작 (뷰 <-> 컨트롤러)
* - 컨트롤러는 모델 데이터 설정 (컨트롤러 <-> 모델)
* - 컨트롤러는 모델에서 설정한 데이터를 얻어온다 (컨트롤러 <-> 모델)
* - 컨트롤러에서 얻어온 데이터를 사용해 사용자 UI 화면에 표시 (컨트롤러 <-> 뷰)
* // -----------------------------------------
* 4. MVC 참고 사항 :
* - 컨트롤러는 모델, 뷰를 연결하는 브릿지 역할을 수행
* - 뷰는 사용자 UI 화면을 보여주는 것이며, 직접적으로 모델에 접근 불가
* - 모델은 데이터 저장, 호출, 데이터 가공 등 비즈니스 로직을 작성할 수 있으며, 직접적으로 뷰에 접근 불가
* // -----------------------------------------
* */
// TODO [빠른 로직 찾기 : 주석 로직 찾기]
/**
* // -----------------------------------------
* // [SEARCH FAST] : []
* // -----------------------------------------
*/
// TODO [전역 변수 선언 실시]
private static final String ACTIVITY_NAME = "Mvc_Controller";
// TODO [액티비티 생명 주기 상태 체크 메소드]
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// -----------------------------------------
// TODO MVC : VIEW : [액티비티 레이아웃 지정 실시]
setContentView(R.layout.a_mvc_layout);
// -----------------------------------------
// -----------------------------------------
// TODO [컴포넌트 매핑 실시]
TextView textView = (TextView) findViewById(R.id.textView);
Button button = (Button) findViewById(R.id.button);
// -----------------------------------------
// -----------------------------------------
// TODO [버튼 클릭 이벤트 리스너 생성 실시 - 콜백]
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO [Model 데이터 설정 실시]
Mvc_Model mvc_model = new Mvc_Model("투케이", 29);
// TODO [Model 에 저장된 데이터 얻어온다]
String userInfo = mvc_model.getUserInfo();
// TODO [View 화면 변경 수행 실시]
textView.setText(userInfo);
}
});
// -----------------------------------------
} // TODO [메인 종료]
} // TODO [클래스 종료]
반응형
'투케이2K 알고리즘' 카테고리의 다른 글
Comments