1

いくつかのデザインの提案が必要です。

これが私のユーザーストーリーです:

ユーザーとして、後で確認できるように作業時間をDBに保存したいと思います。メイン画面からボタンをクリックするだけで、シンプルにしたいと思います。

私のアプリでこれを処理する方法は、メインのアプリケーションフラグメントから、ユーザーがボタンをクリックすると、このタイプの作業に適したクラス(-class "X"と呼びます)をインスタンス化するファクトリクラスを呼び出すことです。 、そしてそれをメインフラグメントに戻して対話します。

クラス「X」コンストラクターでDB接続を確立して開き、このクラスメソッドの1つで新しいデータをDBに挿入します。

私の質問は-これは良いデザインですか?メモリリークは発生しますか?考慮しなければならないことがありますか?

ヘルプのために、クラスのフローのようなUMLを添付しました。

 +-----------------+                 +----------------------+
 |MainFragment     |                 |      Factory         |
 |-----------------|                 |----------------------|
 |                 |                 | ChooseShiftObject    |
 |                 |+---------+----+ |                      |
 | CheckIn()       |                 |                      |
 +-----------------+                 |                      |
                                     +----------------------+
                                              +
                                              |
                                              |
                                              +
                                              |
                                         +    +
                                    +-----------------------+
                                    |       Shift           |
                                    |-----------------------|
                                    |   DB.Open()           |
                                    |   DB.Insert(bla, bla. bla)
                                    |   DB.Close()          |
                                    |                       |
                                    |                       |
                                    |                       |
                                    +-----------------------+
4

1 に答える 1

1

Android のデータベースについて知っておくべきことが 1 つあります。SQLiteOpenHelperオブジェクトをシングルトンとして作成する必要があります。そうしないと、マルチスレッド環境で問題が発生します。ここここで説明を見つけることができます。なぜそれをしなければならないのか.

于 2013-01-08T10:24:22.890 に答える