코딩스타일에 답은 없습니다만..
제가 볼때 님께서 하려고 하시는 방법은 그닥 좋지 않을거 같아요.
클래스를 분리하신것은 좋은 방법이긴 합니다만..
메인Activity에서 UI조작을 해주시는게 훨씬 좋을거에요.
지금 하시려는 방법으로 본다면 엑티비티에서 ImageView를 생성하고 레퍼런스변수를 MainComp클래스의 country메서드로 넘겨서 거기서 이미지뷰의 이미지교체 작업이 이루어지는데요.
이 이미지 교체작업 자체가 UI 변경 작업이거든요.
이런 UI변경 작업은 왠만하면 Activity단에서 해주는게 더 좋긴해요.
리스트뷰를 구현해서 어댑터에서 각각의 뷰들마다 스크롤될때마다 동적으로 바뀌어야하는 작업이 아니라면,
위의 방법보다는 제 개인적인 의견으로는
public class MainComp { //기능분리 클래스
//입력된 값에 의거하여 해당되는 Drawable객체를 얻는다.
public static BitmapDrawable getCountryBitmapDrawble(Context context, String str_national){
BitmapDrawable img_country = null;
if(str_national.equals("대한민국")){
img_country = (BitmapDrawable)getResources().getDrawable(R.drawable.korea);
}
return img_country;
}
MainActivity.java //UI단 메인 클래스
ImageView country = (ImageView)findViewById(R.id.country_img);
BitmapDrawable bitDrawable = MainComp.getCountryBitmapDrawble(MainActivity.this, "대한민국"); //BitmapDrawable 을 얻어온다.
country.setImageDrawable(bitDrawable); //세팅한다.
이렇게가 더 낫지 않을까 싶어요.
그리고 왠만하면 UI단에서 UI 갱신관련 작업을 하시라고 말씀드리는건
만약 님이 지금 하시려고 하신것처럼 다른 클래스 메서드에서 UI갱신 작업을 하게끔 설계를 하고 만들어 놓았는데
만약 님께서 나중에 해당 메서드를 UI단이 아닌 다른 쓰레드 내에서 쓰게 되면 Exception이 발생하게 됩니다.
그땐 또 거기에 땜빵으로 Handler처리를 해줘야되구요.