2017-06-20 14 views
2

イメージで動作し、それらにフィルタを適用するアプリケーションを実装しています。バックエンドはJavaで書かれており、JavaFxとFXMLで作られたデスクトップアプリケーションが付属しています。私が遭遇した問題は、自分のコードを可能な限り最良の方法で整理する方法です。JavaとJavaFxを使用したデスクトップアプリケーションのModel-View-Controller(Presenter)ワークフロー

私は、fxmlファイルで定義されている要素の機能を担当するコントローラと、バックエンドからのJavaベースのロジック全体をモデルとするモデルを持っています。しかし、モデルにはPOJOクラスのようなドメインオブジェクトが含まれているとは思われませんか?どこでボタンをクリックしたときに、コントローラが呼び出すはずのメソッドを、パラメータとしてイメージを取るメソッドを置くべきですか?

私はこのロジックを実装するクラスを持つサービスパッケージを追加することを考えましたが、これはModelからメソッドを呼び出す必要がありますか? それはモデルに入っていても別のクラスにあるはずですか?

アドバイスをいただければ幸いです。また、MVCよりもMVPのようなアーキテクチャーもありますか?

ありがとうございました!

答えて

0

私は最近、JavaFXプロジェクトをMVCパターンで構造化することを学びました。このyoutube tutorialに従って学んだことがありますが、AlmasはMVCデザインパターンを適用しながら簡単なテキストエディタを作成しています。

JavaFX CSS referenceは、CSSを使用してスタイリングを開始したときにも非常に便利でした。

また、CSSにいくつかのノードの構成要素をスタイリングするとき、たとえば、層の数があるかもしれない点に注意してください。

#boldSeparator .line { 
    -fx-border-color: black; 
    -fx-border-width: 1 1 1 1; 
} 

もう一つの例は、ChoiceBoxの矢印が見えない見えます:

choice-box, .choice-box .arrow, .choice-box .arrow-button { 
    -fx-background-color: transparent; 
} 

私はこのことを願っています助けてください。

+0

私はCSSスタイルを追加することができますが、私の質問はViewレイヤーとは関係ありません。 ModelとControllerの間にレイヤーを作るのが良い解決策になるのではないかと思っていました。コントローラはサービスレイヤにアクセスする必要がありますが、コントローラにモデルへのアクセス権があるか、またはサービスのみが(モデルへのアクセス権がある)かどうかはわかりません。私は自分自身を複雑にするかもしれないが、なぜこれが私にとってより論理的であるのか分からない。 – lightstar

+0

サービスの目的は何ですか? – Ricardo

+0

モデルの意味によって異なります。私は間違っているかもしれませんが、モデルレイヤは単純なクラスのようなもので、リストを管理するクラスは含まれません(ドメインリポジトリコントローラのUI構造などのリポジトリのようなもの)。私は常に上記のアーキテクチャからドメインを持つMVCのModelレイヤに似ています。私は間違っていますか? – lightstar