가장 자주 사용 하 는 디자인 모델 의 단일 예 모델 - 안 드 로 이 드 데이터 베 이 스 를 예 로 들 면

2312 단어
오늘 우 리 는 디자인 모델 중의 단일 모델 에 대해 이야기 합 시다. 단일 모델 도 단일 모델 이 라 고 합 니 다.그의 뜻 은 한 종류 에 하나의 실례 만 있다 는 것 이다.
만약 네가 이 모델 을 처음 들 었 다 면, 이 모델 이 도대체 무슨 소 용이 있 는 지 잘 이해 하지 못 했 을 것 이다.여기 예 를 들 어 여러분 께 드 리 겠 습 니 다.
예 를 들 어 저 는 공구 상자 창 이 있 습 니 다. 단 추 를 누 를 때마다 하나의 공구 상 자 를 예화 합 니 다. 사용 자 는 여러 번 누 르 면 여러 번 공구 상자 창 이 팝 업 됩 니 다. 그래서 여기 서 우 리 는 공구 상자 와 같은 인 스 턴 스 가 필요 합 니 다. 우리 의 단일 모드 를 사용 해 야 합 니 다.
오늘 은 안 드 로 이 드 sqlite 의 방문 작업 을 예 로 들 어 단일 모드 를 설명해 드 리 겠 습 니 다.
일반적으로 조작 을 편리 하 게 하기 위해 우 리 는 데이터베이스 도구 류 를 정의 합 니 다. 그 안에 SQLite OpenHelper 류 가 포함 되 어 있 습 니 다. 안 탁 중 SQLite 에 익숙 하지 않 은 학생 들 은 빨리 악 보 를 하 세 요 ~
우선, 새로운 클래스 를 만 듭 니 다. 그 안에 정적 인 자신의 속성 이 포함 되 어 있 습 니 다.
public class DBUtils {
    public static String DB_NAME = "database";
    private static DBUtils dbUtils;
    private DBHelper dbHelper;
    private SQLiteDatabase sqLiteDatabase;

지금 보 니 일반 류 와 별 차이 가 없 는 것 같 으 니 서 두 르 지 말고 계속 내 려 다 보 세 요.우 리 는 그것 의 구조 기 를 private 로 바 꾸 었 다.
 private DBUtils(Context context){
        dbHelper = new DBHelper(context,DB_NAME);
        sqLiteDatabase = dbHelper.getWritableDatabase();
    }

이때 너 는 아마 의 심 스 러 울 것 이다.구조 기 는 모두 new 에 사용 되 지 않 습 니까? 사유 로 바 꾸 고 다른 종류 에서 어떻게 그 를 만 듭 니까?잘 했 어!이렇게 하 는 목적 은 다른 종 류 를 만 들 지 못 하 게 하기 위해 서 이다. 왜냐하면 우 리 는 그의 인 스 턴 스 가 하나 밖 에 없다 는 것 을 보증 해 야 하기 때문이다.그래서 우 리 는 그의 실례 를 얻 기 위해 방법 을 하나 더 추가 해 야 한다
4. 567913. 그러면 다른 유형 이 데이터 베 이 스 를 방문 해 야 할 때 다음 과 같은 조작 만 하면 이런 유형 이 여러 번 예화 되 지 않 고 어느 정도 안전성 을 증가 할 수 있다.여러 대상 을 반복 해서 만 드 는 것 도 피 했다.
 public static DBUtils getDBUtils(Context context){
        if(dbUtils == null){
            dbUtils = new DBUtils(context);
        }
        return dbUtils;
    }

단일 모드 는 두 가지 가 있 는데 하 나 는 상술 한 것 이다. getDBUtils () 를 할 때 만 실례 화 대상 을 우 리 는 그 를 게으름뱅이 식 이 라 고 부른다.또 하 나 는 그 속성 을 다음 과 같은 방식 으로 바 꾸 는 것 이다. 이런 것 을 우 리 는 굶 주 린 한식 이 라 고 부른다. 두 가지 방식 의 차이 점 은 그 중 하 나 는 라인 이 안전 하고 다른 하 나 는 라인 이 안전 하지 않다 는 것 이다. 구체 적 으로 어느 것 이 라인 이 안전 한 지 는 모두 에 게 남 겨 두 고 스스로 고려 해 야 한다. 왜냐하면 생각 을 해 야 향상 시 킬 수 있 기 때문이다.
mDbUtils = DBUtils.getDBUtils(mContext);

참고 로 안 탁 에서 메모리 낭 비 를 피하 기 위해 Activity 는 네 가지 시작 방식 을 제공 합 니 다. 모 르 는 동 화 는 여 기 를 볼 수 있 습 니 다.
Activity 의 네 가지 시작 방식

좋은 웹페이지 즐겨찾기