mvc mvp

mvc   model  view controller

自己做了一个demo   recyclerview的条目展示   

定义了一个Newsmoudle接口

public  void geturl(String url, OnNewsListner onNewsListner);

定义了一个方法 传递url 和 一个接口

OnNewsListner
public void  Onsuceess(Mynews mm);
public void Onerror(String error);
定义一个实现类
public class Newsmoudleimp implements Newsmoulde {
@Override
public void geturl(String url, final OnNewsListner onNewsListner) {
    OkHttpUtils.get().url(url).build().execute(new StringCallback() {
        @Override
        public void onError(Call call, Exception e, int id) {
            onNewsListner.Onerror(e.toString());
        }

        @Override
        public void onResponse(String response, int id) {
            Gson gson=new Gson();
            Mynews mynews = gson.fromJson(response, Mynews.class);
            Log.e("ss",mynews.toString());
            onNewsListner.Onsuceess(mynews);

        }
    });

会重写Newsmoudle里面的方法
onNewsListner 通过这个对象去调用回调接口里面的两个方法
将结果传递进去
public class MainActivity extends AppCompatActivity implements OnNewsListner
Newsmoulde newsmoulde=new Newsmoudleimp();
newsmoulde.geturl(MyUtilurl.url,this);


 }
以上就是mvc的设计模式做一个简单的网络请求展示数据
mvp
activity相当于v
m层做逻辑
public interface Newsmoudle {
    public void getutl(String url, Newsview newsview);
}




public class Newsmoudleimp implements Newsmoudle {

    @Override
    public void getutl(String url, final Newsview newsview) {
        OkHttpUtils.get().url(Myurl.str).build().execute(new StringCallback() {
            @Override
            public void onError(Call call, Exception e, int id) {
                newsview.onError("请求失败");

            }

            @Override
            public void onResponse(String response, int id) {
                Gson gson=new Gson();
                Mynews mynews = gson.fromJson(response, Mynews.class);
                newsview.onSuccess(mynews);

            }
        });

    }



public interface Newsview {
    public  void onSuccess(Mynews mynews);
    public void onError(String str);
}



//p层要拿到m层和v层的对象
//通过一个方法将数据传递给view层
public class Newspresenter {
 private Newsview newsview;
    Newsmoudle newsmoudle=new Newsmoudleimp();
    private Context context;

    public Newspresenter(Newsview newsview, Context context) {
        this.newsview = newsview;
        this.context = context;
    }

    public void getdata(){
        newsmoudle.getutl(Myurl.str, new Newsview() {
            @Override
            public void onSuccess(Mynews mynews) {
                newsview.onSuccess(mynews);


            }

            @Override
            public void onError(String str) {
                newsview.onError(str);

            }
        });

    }






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值