私はRealmDbを評価していますが、RealmDbはモデルレイヤと緊密に結合していると感じています。明日私はそれが巨大なリファクタリングの努力よりもいくつかの他のローカルデータベースに置き換えなければならないと感じる。
私の質問は、RealmDBでクリーンなアーキテクチャを実現する方法です。私が従う例は何ですか?RealmDb:Androidのアーキテクチャを清潔にする
5
A
答えて
2
Realmを使用すると、必要に応じてデータベースモデルをビューモデルとして簡単に再利用できます。しかし、データレイヤーのエンティティとビューのレイヤーエンティティを持つことを止めて境界線をマッピングすることは何もありません。
など。
// Data layer
public class FooEntity extends RealmObject {
// Realm fields and methods...
public static FooEntity fromViewModel(FooViewModel viewModel) {
// Convert to entity
}
public static FooViewModel toViewModel(FooEntity entity) {
// Convert to view model
}
}
// View layer
public class FooViewModel {
// Standard POJO used by the View layer
}
多くの場合、過剰殺人の可能性が高いですが、それはあなたに必要な分離を与えるでしょう。
0
主な目的は、フレームワークのアプリケーションのドメインをクリーンアーキテクチャ、オニオンアーキテクチャ、六角形アーキテクチャとして分離することです。
この分離を実現するために、実装の詳細はデータレイヤーとして隠されます。格納されたデータへのアクセス方法を定義する境界またはポートが定義されていますが、格納方法を知らなくても通常はこのアーキテクチャ要件を実装するためにリポジトリパターンが使用されます。
これらの要件では、一般に、永続性モデルと差別化されたドメインエンティティがあります。パーシスタンスモデルは、例えばRealmのようなフレームワークに結合することができます。
グラフを理解しやすい図を残します。
関連する問題
- 1. 清潔なスレートのインストールレール
- 2. Googleジオコーディングサービス - 清潔な通りの名前を取得する
- 3. JSで清潔でタイムゾーンのない日付を返す
- 4. パイロットのミニバッチを清潔で効率的な方法で入手するには?
- 5. Djangoのモデル清潔で多対多の問題
- 6. 清潔な米国地図上の地図点(50州)
- 7. Railsパーシャルシスのベストプラクティス:再利用と清潔度
- 8. 清潔に整理されたJavaScriptコードを書くのに助けが必要
- 9. Wordpressで清潔なURLとしてカスタムGETリクエストを送信する
- 10. 清潔なグラスフィッシュ管理コンソールが動作しないのはなぜですか?
- 11. 清潔さとスピードの点での動的メモリと静的メモリのベストプラクティス
- 12. nodeJSアプリのトップを清潔にする方法はありますか?多くのモジュールが必要です
- 13. どのように書いて、清潔に保つために、簡単にJavascriptの&jQueryの
- 14. Androidは清潔、コンパイルのための一般的な目標とAntスクリプトファイルを持っているMavenの
- 15. Railsで清潔なスレートを取得するために、どのプロセスを強制終了する必要がありますか?
- 16. Bloated Git Repo W/BFGを清掃する
- 17. セッション清算問題
- 18. "スレート清掃"をPythonで
- 19. 市場清算のアルゴリズム
- 20. クラス「ミューズ\清浄\ PurifierServiceProviderは」
- 21. HTML清浄フィルター要素
- 22. のVisual Studio 11ベータ版とWindows 8コンシューマープレビュー起動時の問題清潔に私はVMware Playerの仮想マシンで次のようにインストールした
- 23. docker/overlay2を清掃するのは安全ですか
- 24. .htaccess 3つ以上のparamersを持つURLを清掃する
- 25. ベースクラス内のベクトルのインスタンス化の清掃
- 26. VISA加盟店名を清掃するためのRegEx
- 27. flexmark-javaを使用してマークダウンを清掃する
- 28. HPCに使用するアーキテクチャ
- 29. dma_map_single内部アーキテクチャのアーキテクチャ
- 30. HTML清浄機でYoutubeビデオを許可する
私は私の理解が正しければ、それは私のデータ層エンティティがRealmObjectから継承する必要がどういう意味かわかりませんか? – Signcodeindie
はい、それはあなたのデータレイヤーなので、Realmデータを保存して保存するのは何でしょうか? –
このアプローチでは、すでに永続化されているモデルを更新する**ベストプラクティスは何ですか? 'fromViewModel'を呼び出して' realm.insert(fooEntity) 'を実行できますか?または、最初に 'findById'を実行し、トランザクション内で検索されたオブジェクトのsetterを呼び出す必要がありますか? – einsA