私の理解によれば、データを処理するために使用されるメソッドをクラスにカプセル化します。今後同じデータ処理に遭遇する場合、このクラスをM層に属し、データを処理します。
インタビュアーは私に尋ねました:
Web ページをクロールするには次の手順があります
1. URL に従って Web ページをクロールします
2. 正規表現を使用して HTML 要素を処理します
3. キャプチャしたコンテンツをデータベースに保存します
上記3 部門は M レベルのどの段階ですか?
3 つのステップすべてに当てはまると思います。
私の理解が間違っていたら、どこが間違っているか、教えてください〜
上記の 3 つのステップのいずれかが M 層ではない場合、それは MVC のどの層に属しますか? ?
パート 3 でデータベース クエリが実行されたため、
3 HTMLを呼び出すことができます
1はMのままで、2をベースにcurlキャプチャを追加するだけで、urlをパラメータとして使用します
1.2はビジネスロジック層に属し、3はデータ層
明らかに 3、はい データ操作
1 は制御層 3 はデータ処理層 これが私が理解する方法です
3 だけです、1 と 2 は制御層です
3 番目のステップ、m はデータ処理層、もちろんアプリケーション ロジックを m 層で記述することもできますが、非常に不規則です。
正しい mvc アーキテクチャでは、c 層ができるだけ少ないデータ ロジックを処理し、それを m に処理させる必要があります。そうしないと、mvc の最大の利点であるコードのモジュール化の利点が反映されません。あくまで参考としてください!
MVC アーキテクチャの正確な定義はまったくありません。面接官は十分なスキルを持っていない可能性があり、または不可解である可能性があります。
V はユーザーの視点
C はビジネスの視点
本来、この 3 つは連携してあらゆる機能を完成させます。 Web ページをクロールする場合、リソースのリクエストは通常 M で記述されます。
HTML の正規表現解析では、C と M の両方を使用できます。 Mでメソッドを書いてCで呼び出す方が良い構造です。
多くのフレームワークでは、M はデータベースにアクセスするだけでよいため、データベース操作は M である必要があります。