MVCモード(feat:Wooにメッセージを送る)

6175 ワード

MVCモードとは


Model & View & Controller
アプリケーションを3つのロールに分割する開発方法

MVCストリーム


  • ユーザは、必要な機能を処理するためにコントローラにすべての要求を送信する.
  • コントローラはモデルを使用し、モデルは適切なビジネスロジックを実行します.
  • コントローラは、ユーザに表示するビューを選択する.
  • のビューを選択して、ユーザーに適した結果画面を表示します.
    このとき、ユーザに表示されたデータはコントローラを介して伝達される.
  • Model


    値と機能を持つオブジェクト
    public class Triangle {
        
        private static final int SIZE = 3;
        private static final String NAME = "삼각형";
        private List<Point> points;
        
        Triangle(List<Point> points) {
            this.points = points;
        }
    }

    View


    モデル内のデータの可視化

    Controller


    モデルオブジェクトへのデータフローの制御
    ビューをモデルから分離
    public void run() {
    	
        try {    	
            String inputPoints = InputView.inputCoordinates();
            Figure figure = FigureFactory.create(generatePoints(inputPoints));
            OutputView.showCoordinatePlane(figure.getXYCoordinates());
            OutputView.print(figure.getAreaInfo());
        } catch(Exception e) {
        	System.err.println(e);
        }
    }

    Why MVC?

  • は、各要素のコード結合度
  • を低減する.
  • コードは
  • を繰り返し使用することができる.
  • の実施者間の通信効率を向上させる.
  • MVCでよく間違える部分を整理する


  • モデルからビューにアクセス

  • モデルでビューの役割を果たす->ビューでビジネスロジックを作成する

  • ビューのオーバーリミット値の検証と除外
  • 優雅な情報フィードバック
    どこで値を検証すればよいか考えてみてください.
    私の場合、InputViewから受け取った値をPresentation Layerでチェックします.
    InputViewに入力以外の役割を付与すると、単一の責任原則に違反し、後で入力チャネルが変化したときに有効性チェックロジックが移行します.
    また、Service Layerでユーザーの権限または論理値(存在するか、一致しているか)を確認します.
    値フォーマットは有効ですが、ドメインモデルでチェックする必要がある部分を作成器でチェックしたほうがいいと思います.△プレイヤーの名前には少なくともいくつかの文字が必要です.私が言ったのはこれらの政策です.
    ジェネレータは有効性のみをチェックし、他の論理を追加すべきではないと思います.
    皆さんはまだLayerの概念に慣れていないかもしれません以降のタスクを行うには各種機能の組み合わせが必要となるという観点から、今回はそれがあることを確認するだけでよい.

    リファレンス


    エレガントなTacoTalkビデオ

    後で読むのに適した文章


    3階層アーキテクチャとMVC