2017-01-16 7 views
0

시간 등록 앱이 있으며 일부 사용자는 기본 설정에 따라 첫 번째 요일로 변경하도록 요청했습니다. 저는 주중 첫날을 달력 객체로 설정할 수 있다는 것을 알고 있습니다.하지만 저는 그것들을 많이 사용하고 있으며, 첫날을 모두 들여 놓고 싶지 않습니다. 그래서 내 전체 애플 리케이션을위한 첫날을 설정하는 방법은 무엇입니까?캘린더 setFirstDayOfWeek 전체 앱

답변

2

는 또한 DRY 규칙으로 알려진 "자신을 반복하지 마십시오"라는 소프트웨어 프로그래밍에 황금률이있다 그들

모두에 첫날을 설정처럼 생각하지 않습니다. 따라서 같은 코드를 반복해서 써서 첫 번째 요일을 설정하지 말아야하지만 일부 코드는 여전히 모든 코드에 적용해야합니다. 따라서

그런 경우 일반적인 방법은 다음과 같습니다. 공장을 짓는다.

class CalendarFactory { 

    public static void setFirstDayOfWeek(Context context, int value){ 
     // use context to save value in SharedPreferences 
    } 

    public static Calendar newInstance(Context context) { 
     // read the value from SharedPreferences 
     // create new GregorianCalendar 
     // setFirstDayOfWeek 
     // return 
    } 
} 

이 방법을 통해 항상 캘린더의 인스턴스를 가져와야합니다.