Andriod studio 学习 之 设计模式之MVC

基于Andriod的在线人才招聘系统app设计与实现 B/S构造(Browser/Server,浏览器/效劳器模式),其是一种分布式的计算机网络系统,用户通过浏览器向上一级的网站程序传递相关的参数和请求,然后效劳器上的程序再将这些请求和参数进展处理,最后将结果通过反响回用户浏览器反映出来。Web程序设计技术是一项用于网页制造方面的专业技术,主要实现了网页的动态交互功能,通过此项技术语言(如java、CGI、ASP等)所设计的相关网页可以对用户所发出的及时操作以及需求进展相应的相应,从而到达实现即时动态交互的目的。Maven包:Maven3.3.9。 阅读详情
MVC模式

简介

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

MVC分别代表什么

Model(模型)表示应用程序核心(比如数据库记录列表)。
View(视图)显示数据(数据库记录)。
Controller(控制器)处理输入(写入数据库记录)
在这里插入图片描述

为什么要用到MVC模式

1、耦合性低。降低了代码的耦合性,利用MVC框架使得View(视图)层和Model(模型)层可以很好的分离,这样就达到了解耦的目的,所以耦合性低,减少模块代码之间的相互影响。
2、模块区域分明,方便开发人员的维护。

PostMan

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

RestfulApi

模拟化URL,把URL分成若干份,复用方便管理

代码案例

思路:
1.定义一个下载接口
2.定义一个结果接口
3.实现类(下载接口)
(1)写具体的下载逻辑,实现下载接口 重写接口中的方法
(2)下载结果传给结果接口 调用结果接口
Activity中
1.调用实现类(下载),传递url和结果接口
2.重写success取结果

效果展示

在这里插入图片描述

代码

定义接口

获取数据的接口

package com.example.day002;

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

成功和失败的接口

  package com.example.day002;
    
    public interface ResultIntrface {
        public void success(String json);
        public void fail();
    }

实现接口的方法

package com.example.day002;

import android.util.Log;

import java.io.IOException;

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

/**
 * Model第二部;接口实现类
 *
 * 给接口传值 调用接口的方法
 */
public class GetJsonImpl implements GetJsonInterface{

    ResultIntrface resultIntrface;

    public GetJsonImpl(ResultIntrface resultIntrface) {
        this.resultIntrface = resultIntrface;
    }

    private static final String TAG = "GetJsonImpl";
    @Override
    public void getJson(String url) {
        OkHttpClient client = new OkHttpClient.Builder().build();
        Request builder = new Request.Builder().get().url(url).build();
        Call call = client.newCall(builder);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                resultIntrface.fail();
            }

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

                resultIntrface.success(string);
            }
        });
    }
}

Activity中的代码

package com.example.day002;

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

public class Main2Activity extends AppCompatActivity implements ResultIntrface{

    private static final String TAG = "Main2Activity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

    }

    /**
     * 下载
     * @param view
     */
    public void download(View view) {
        //显示  还得和model要结果
        GetJsonImpl um = new GetJsonImpl(this);
        String url="https://raw.githubusercontent.com/zhang721788/testmaterial/master/doctor0.json";
        um.getJson(url);
    }

    @Override
    public void success(String json) {//取结果  从m层
        Log.d(TAG, "success: "+json);
    }

    @Override
    public void fail() {

    }
}
第一次使用Android Studio时你应该知道的一切配置 首先是一个知识清单:(对于现在的Android及移动互联网来说,我们需要掌握的技术)泛型原理丶反射原理丶Java虚拟机原理丶线程池原理丶注解原理丶注解原理丶序列化Activity知识体系(Activity的生命周期丶Activity的任务栈丶Activity的启动模式丶View源码丶Fragment内核相关丶service原理等)代码框架结构优化(数据结构丶排序算法丶设计模式)APP性能优化(用户体验优化丶适配丶代码调优)热修复丶热升级丶Hook技术丶IOC架构设计。 阅读详情

相关推荐

Android Studio 笔记1.2 测试开发环境

Android Studio笔记1.2 测试开发环境

ZQIR12的博客 497

Android开发——MVC架构模式

Android MVC架构的学习和使用。

qq_32403767的博客 313

【项目实战】Android应用程序架构,MVC、MVP、MVVM三种模式介绍

MVC(Model-View-Controller)模式MVP(Model-View-Presenter)模式MVVM(Model-View-ViewModel)模式。

奶爸的编程之路,也就一周冷个三天 1091

Android MVC、MVP、MVVM三种架构的介绍和使用。

现在随便出去面试Android APP相关的工作,面试官基本上都会提问APP架构相关的问题,用Java、kotlin写APP的话,其实就三种架构MVC、MVP、MVVM,MVC和MVP高度相似,区别不大,MVVM则不同,引入了新的JetPack工具:ViewModel、LiveData、DataBinding,导入了“View和数据双向绑定的概念”。搞Android APP的必须把这三种架构搞清楚、搞透彻。

weixin_43522377的博客 1473

Android Studio项目源码包使用指南:从导入运行到改造进阶

在Android开发学习过程中,Gradle作为核心构建工具,决定了项目能否顺利编译与运行。很多开发者下载了包含50个Android Studio项目源码的资源包,却因环境配置、版本兼容等问题止步于解压阶段。真正高效的源码学习,需要从理解Gradle与AGP的对应关系入手,掌握导入、同步、运行调试的完整流程。本文以工程实践视角,介绍如何筛选合适的项目进行拆解学习,并结合模拟器调试、数据库增删改查、网络请求等常见场景,讲解从阅读代码到二次改造的进阶路径。通过系统化使用这些源码案例,开发者能够快速提升Andro

weixin_29171087的博客 336

android mvc、mvp、mvvm项目源码

分别用mvc,mvp,mvvm三种架构实现同一功能的android项目,比较三个架构的不同及优缺点。

Android开发框架模式(MVC、MVP、MVVM)实例解析

Android项目中,尤其是比较大型的项目开发中,模块内部的高聚合和模块间的低耦合性就显得尤为重要了。所以我们一般情况下需要为项目设计一种框架模式,通常情况下我们一般用到的三种MVC、MVP、MVVM。 通过框架模式设计的项目能够极大的提高开发效率,提高项目的可维护性和可扩展性,另外在模块测试及问题定位上也提供了较大的便利。 接下来我们就对这三种框架模式一一进行讲解,并会重点讲解下比较常用的MV......

红日 1万+

MVC设计模式框图解

让你对MVC设计模式有一个更加深刻的认识,深入浅出的搞明白MVC

AndroidStudio项目结构介绍

AndroidStudio项目结构介绍

hylan的博客 1664

Frida实战:如何逆向分析某电商App的doCommandNative函数(附完整Hook脚本)

本文详细介绍了如何使用Frida逆向分析电商App中的doCommandNative函数,涵盖动态注册识别、SO加固对抗及高级Hook脚本编写等实战技巧。通过完整Hook脚本示例,帮助安全研究人员深入理解JNICLibrary的关键函数逆向分析方法,提升移动应用安全研究能力。

weixin_29327977的博客 615

【数据分析与挖掘实战】金融风控之贷款违约预测详解1(有代码和数据集)

金融风控一.题目理解1.1.题目概况1.2数据概况1.3预测指标二.数据来源三.查看数据四.分类指标计算示例4.1混淆矩阵4.2准确度4.3precision(精确度),recall(召回率),f1-score4.4P-R曲线4.5ROC曲线4.6AUC曲线4.7KS值五.数据分析5.1基本信息5.2查看数据集中特征缺失值,唯一值等5.3查看特征的数值类型有哪些,对象类型有哪些5.3.1数值连续型变量分析5.3.2非数值类别型变量分析5.3.3总结:5.4变量分布可视化5.4.1单一变量分布可视化 更新中~

m0_49263811的博客 1万+

Andriod Studio-JetPack学习笔记之————10 ViewModel 从MVC到MVVC

添加依赖 SQLite数据库 Room 21 Entity Dao Database 22 ViewModel LiveData Asynctask Repostory 23 RecyclerView RecyclerViewAdatpter Migration DataBinding Navigation 23总结: 引入LiveData,AsyncTask,将database修改为singleton模式(保证只有一个实例),使用viewmodel和repository管理数据(使MainActivity

qq_44225404的博客 360

物联网开发131 - Micropython ESP32 C3连接TB6600驱动42BYGH39步进电机

如何使用合宙ESP32 C3连接TB6600驱动42BYGH39步进电机,实现控制步进电机正反转和旋转指定角度等

zhusongziye的博客 2370

设计模式和代码示例

设计模式是在软件开发过程中,通过反复实践和总结得出的一系列可复用的解决方案,旨在解决常见的设计问题。它们并非具体的代码实现,而是设计思路和原则的总结。应用设计模式可以帮助开发者在面对相似的设计挑战时,快速找到成熟可靠的解决方案,从而提升软件的可维护性、可扩展性和可重用性。

望佑 7064

保姆级教程:用再生龙Clonezilla Live给Ubuntu系统做全盘备份与恢复(含BIOS设置避坑)

本文提供了一份详细的Clonezilla Live教程,指导Ubuntu用户如何轻松完成全盘备份与恢复。从启动盘制作、BIOS设置避坑到备份参数解析和恢复操作,涵盖了所有关键步骤和常见问题解决方案,帮助用户高效保护系统数据。

weixin_42116058的博客 638

ThingsBoard PE专业版解决方案技术文档——温度&湿度

温湿度解决方案

weixin_67440240的博客 818

andriod studio 开发的程序结构认识

一、安卓的程序结构 project->moudle  一个新建的工程的结构: APP模块 manifests文件夹 1xml格式的声明文件 AndroidMainifest.xml ,它包含了 一个application 元素 activity元素。 application元素可以定义4个组件,这里可以定义程序的图标android:icon="@mipmap/ic_launch...

heda3的博客 838

RK3588 Android12 添加HDMI和喇叭声音通道切换选项

rk3588 android12系统默认接hdmi out时,声音会切换到hdmi out输出,主板声卡喇叭输出会没有声音输出。现在添加一个选项设置hdmi out时,声音可以保持主板声卡喇叭输出。

Android系统开发笔记 4162

MVC模式在android 中的运用

转发地址:http://www.2cto.com/kf/201506/405766.html 算来学习Android开发已有2年的历史了,在这2年的学习当中,基本掌握了Android的基础知识。越到后面的学习越感觉困难,一来是自认为android没啥可学的了(自认为的,其实还有很多知识科学),二来网络上的很多框架已经帮我们做了太多的事情了,我们只需要画画UI就可以了,感觉Androi

jiyidehao的博客 421

YOLO26 无损剪枝:稀疏训练 + 结构化通道裁剪

YOLO26 无损剪枝链路:YOLO26s (7.2M) → 稀疏训练 30 epoch (L1 on BN gamma, lam=0.01) → 阈值剪枝 50% (gamma<quantile(0.5)) → 结构化重建 Conv+BN → 微调 10 epoch (lr=1e-4) → YOLO26n (1.9M, mAP50 0.808, 仅降 0.6%)。核心贡献:稀疏训练让 BN gamma 趋向二元分布 (近 0 或近 1), 剪枝阈值可直接取 median 自动 50% 压缩。

m0_64661770的博客 263

【声纳技术】声呐时间反转镜技术:从被动聚焦到主动空间复用

时间反转镜技术以其独特的物理机制,为水声通信与声呐探测提供了一条绕过传统自适应均衡器的新路径。被动时间反转利用接收端的空间分集实现脉冲压缩,结构简洁、计算高效;主动时间反转则通过发射端预编码,将多径能量引导至目标位置,为多用户下行链路的空间复用奠定了物理基础。从Kuperman等人在海洋中首次验证声学时间反转镜,到TR-MIMO声呐的湖试验证,再到VTRM-CRK多用户通信系统的海试成功,该技术已从理论概念逐步走向工程实用。

u012133341的博客 55

Android中采用的MVC框架

MVC是当前比较流行的框架,随便Google下,就可以发现几乎所有的应用程序开发中都采用了MVC框架,例如:.NET,Java Spring,Java Struts,PHP 。那么MVC到底是什么,为什么被广泛使用?        简要说明下,什么是MVC。MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器。一个逻辑模型可以对于多种视图模型,

无聊敲代码 越敲越有劲 826

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android 中 MVC 的简单理解

Android 的当前开发MVP已成为开发主流模式,简单的总结一下MVC的模式,毕竟当前项目中还在使用 MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。(wiki) 说到MVC,不得不提三种组件的功能: 模型(Model)负责处理数据和提供数据。 用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法 视图(View)能够实现数据有...

K_Hello的博客 840

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Android Studio学习记录之简单的页面切换及宫格菜单

Android Studio学习记录之简单的页面切换及宫格菜单 之前上课听老师讲的一些东西自己其实并没有消化,今天把不懂的都去网上搜了一下,有了一种恍然大悟的感觉,包括很多方方面面的东西。有些东西听说了也明白,但是没有实际的操作就还是不能够知道具体场合应该怎么用。虽然不能面面俱到把所有的东西都搞透,但是通过整理的过程,希望把我理解的东西表达出来,也希望以后回过来看的时候,能够有进一步的理解。 ...

人不疯狂枉少年~ 2231

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

学习笔记 | Android Studio安卓开发入门经验总结 干货

前言最近完成了移动编程课程的学习,加上其它安卓开发项目的经历,感觉收获颇为丰富。故在此总结整理安卓开发中比较常见的一些问题,技巧和指南。0.目录1.开发环境Android Studio是谷歌基于IntelliJ IDEA社区版开发的,面向安卓开发的免费集成开发环境。其方便快捷的开发调试和可视化UI编辑可以令安卓开发事半功倍。本项目所使用集成开发环境为Android Studio 4.1.1,编程语言为Java,使用JDK 1.8,使用Gradle 4.1.1进行项目工程构建和依赖管理。2. 项目新建An..

一颗蚂蚱 2368

Android Listview 配合 SimpleAdapter使用

适配器遵循MVC(model,view,controller)设计模式,它将数据、业务逻辑、界面分离。适配器是MVC中的控制器。 关键代码: //创建适配器(控制器),将mapList(模型)与 layout(item列表项界面)关联起来。 //context: 这个适配器应用到哪个context中。 //data: 这个控制器所使用的Maplist模型。 ...

weixin_43553234的博客 415
上一篇: Andriod studio 学习 之 okhttp
下一篇: Andriod studio 学习 之 OkGo框架
Young_cloud
博客等级 码龄7年 18粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值