MVC

本文深入解析了MVC(Model-View-Controller)架构的工作原理,详细介绍了模型(Model)、视图(View)和控制器(Controller)各部分的功能及其实现方式。通过一个具体的下载接口示例,展示了如何在Android应用中运用MVC架构进行模块化设计,提高代码的可读性和可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MVC:Model-View-Controller 模型-视图-控制

Model模型层处理数据
View用来显示视图
Controller用来控制M和V

M-下载接口
以及结果借口
下载接口的实现类完成下载逻辑实现下载接口重写方法,下载结果传给结果接口
package com.example.mvc;

/**

  • 处理数据 M层的第一步接口
  • */
    public interface GetJsonInterface {
    public void getJson(String url);
    }
    package com.example.mvc;

import android.util.Log;

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class GetJsonImpl implements GetJsonInterface{
private static final String TAG = “GetJsonImpl”;

ResultInface resultInface;

public GetJsonImpl(ResultInface resultInface) {
    this.resultInface = resultInface;
}

@Override
public void getJson(String url) {
    OkHttpClient client = new OkHttpClient.Builder().build();
    Request build1 = new Request.Builder().get().url(url).build();
    Call call = client.newCall(build1);
    call.enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            resultInface.fild();
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            String string = response.body().string();
            Log.i(TAG, "onResponse: "+string);
            resultInface.success();
        }
    });
}

}

package com.example.mvc;

public interface ResultInface {

public void success();
public void fild();

}

V,C
去调用下载实现类,传递URL和结果接口
重写接口方法

package com.example.mvc;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

/**
*

  • MVC Model-View-Controller 模型视图控制
  • Model:模型层用来处理数据
  • View:
  • Controller
  • */

public class MainActivity extends AppCompatActivity implements ResultInface{
private static final String TAG = “MainActivity”;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void click(View view) {
    GetJsonImpl getJson = new GetJsonImpl(this);
    getJson.getJson("https://zhuanlan.zhihu.com//api/columns/growthhacker/posts?limit=10&offset=1");
}

@Override
public void success() {
    Log.i(TAG, "success: 我已成功!");
}

@Override
public void fild() {
    Log.i(TAG, "fild: ");
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值