第二单元 MVC架构

  • MVC架构
    MVC的介绍
    MVC的特点
  • 新闻客户端MVC设计与分析
    项目整体架构
    Model和VIew分开
    Controller作用
  • RESTFUL API详解
    什么是REST
    什么是Restful
    如何使用Restful
    设计Restful风格
  • Swag与PostMan的使用
    PostMan安装
    PostMan使用方法
    新闻客户端API接口测试

MVC的介绍

MVC是Model-View-Controller的简称

MVC的特点

Model:模型层,负责处理数据的加载或者存储
View:视图层,负责界面数据的展示,与用户进行交互
Controller:控制器层,负责逻辑业务的处理

代码部分:

M:1.下载接口

interface getJson(String url);

/**
 * 规定如何处理数据 M层第一步 接口
 */
public interface GetJsonInterface {
    public void getJson(String url);
}

2.结果接口

interface result scccess(String json);fail(int errorCode);

public interface ResultInterface {
    public void success(String json);
    public void fail();
}

3.实现类

(1)具体化下载逻辑,重写getJson()//重写下载接口
(2)下载的结果传给结果的接口 调用结果接口
Rinterface.succcess(结果)

/**
 * M层的第二步:接口的实现 类
 *
 * 给接口传值  调用接口中的方法
 */
public class GetJsonImpl implements GetJsonInterface{
    private String url="http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=1";
    ResultInterface resultInterface;

    public GetJsonImpl(ResultInterface resultInterface) {
        this.resultInterface = resultInterface;
    }

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

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

V.C(Activity)

(1)调用下载实现类 传递url和结果接口
(2)重写success取结果

/**
 * MAC Model-View-Controller 模型-视图-控制
 * model 处理数据
 * view 显示UI
 * conyroller 控制M和V
 */
public class MainActivity extends AppCompatActivity implements ResultInterface{

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

    /**
     * 下载
     * @param view
     */
    public void downLoad(View view) {
        //下载的逻辑在model
        //显示 和model要结果
        GetJsonImpl im=new GetJsonImpl(this);
        String url="http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=1";
        im.getJson(url);//执行下载的逻辑

    }

    @Override
    public void success(String json) {//从M层取的结果
        Log.i("TAG", "success: 成功");
    }

    @Override
    public void fail() {

    }
}

postMan

用来测试url 装在谷歌浏览器的插件

Restful

API
作用:模拟化URL把URL分成若干部分 复用方便管理

技能效果

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值