마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

변수 선언해놓고 계속쓰기, 혹은 메소드로 사용하기 질문.

0 추천

RelativeLayout 변수를 3개 선언하고, 거기에 따라 LayoutParams도 3개 선언해서

각 상황에 따라 params.setMargin값을 주고, setLayoutParams를 해주고 있습니다.

근데 생각해보니까... 굳이 이렇게 해줄필요 없이 메소드를 하나 선언해서 쓰면 어떨까 하는 생각을 했습니다. 

 

기존에 사용하던 방식

// 아래와 같이 전역변수로 선언해 놓습니다. 
RelativeLayout layout1,layout2,layout3;
RelativeLayout.LayoutParams params1, params2, params3;

// 여러가지 상황에서 아래와 같이 처리합니다. 
params1.setMargin(left,top,right,bottom);
params2.setMargin(left,top,right,bottom);
params3.setMargin(left,top,right,bottom);

layout1.setLayoutParams(params1);
layout2.setLayoutParams(params2);
layout3.setLayoutParams(params3);

 

이렇게 바꾸면 어떨까 생각해본 방식

// 아래와 같이 선언해 놓습니다.
RelativeLayout layout1, layout2, layout3;

// 아래와같이 메소드를 만듭니다.
public void setMargin_test(RelativeLayout layout, int left, int top, int right, int bottom){
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)layout.getLayoutParams();
params.setMargins(left, top, right, bottom);
layout.setLayoutParams(params);
}

// 여러가지상황에서 아래와 같이 해당 메소드를 사용합니다.
setMargin_test(layout1, 0, 10, 20, 30);
setMargin_test(layout2, 10, 20, 30, 0);
setMargin_test(layout3, 30, 10, 0, 10);

 

근데.. 또 생각해보니까 이렇게하면 속도면에서 느려지거나 하지 않을까 하는 생각이 드네요..(체감하기는 힘들겠지만.)

이럴때 어떻게 하는게 좋을지, 조언 부탁드리겠습니다.

 

블랙이요블랙 (12,860 포인트) 님이 2013년 4월 10일 질문

1개의 답변

+1 추천
 
채택된 답변
그냥 간단하게 생각하세요

속도야 당연히 메소드로 만들어서 처리하면 조금 더 느리죠.

하지만 그 정도 속도 차이가 느껴지지는 않죠.

 

중요한것은 해당 코드의 반복성이죠.

메소드로 만드는 가장 중요한 이유는 코드의 재사용입니다.

빈번하게 자주 사용된다면 메소드로 만들어 처리하시고

그렇지 않다면 굳이 메소드로 만들 필요는 없죠.
원조안드로이드 (58,190 포인트) 님이 2013년 4월 10일 답변
블랙이요블랙님이 2013년 4월 10일 채택됨
답변 감사합니다!!!! ㅎ
...