一元购物网站建设江苏建设监理网站

web/2025/9/26 21:37:39/文章来源:
一元购物网站建设,江苏建设监理网站,wordpress 自动摘要,怎么做个工程网页制作推广实现方案 直接依赖 这种方式实现简单#xff0c;但是耦合太严重#xff0c;不方便维护与开发#xff0c;当工程逐渐增大模块逐渐增多#xff0c;依赖关系会非常复杂#xff0c;不推荐这种方式。 事件或广播通信 EventBus#xff1a; 我们非常熟悉的事件总线型的通信框…实现方案 直接依赖 这种方式实现简单但是耦合太严重不方便维护与开发当工程逐渐增大模块逐渐增多依赖关系会非常复杂不推荐这种方式。 事件或广播通信 EventBus 我们非常熟悉的事件总线型的通信框架非常灵活采用注解方式实现但是难以追溯事件。广播 安卓的四大组件之一在一个模块中发送广播设置数据在另一个模块中注册广播接收数据使用广播进行数据传递方式广播相对于其他的方式而言消耗资源较多。 总结 BroadcastReceiver、EventBus非常灵活模块之间没有任何的耦合但是代码的可读性差难以追溯事件不是很推荐。 路由通信 模块与模块之间不存在依赖关系而是各自运作简单的来说就是映射关系的路由通信也是目前比较主流的一种方案比较常用的开源框架是阿里的ARouter。 ARouter典型应用 从外部URL映射到内部页面以及参数传递与解析跨模块页面跳转模块间解耦拦截跳转过程处理登陆、埋点等逻辑跨模块API调用通过控制反转来做组件解耦。 面向接口通信 以上几种方式只是简单的介绍下面就具体说下通过接口解耦通信的方式首先先看几个问题。 什么是面向接口编程 接口大家都很熟悉这里所说的面向接口编程并不只是所谓的 java 中的 interface而是指超类型可以是接口也可以是抽象类。 面向接口比面向对象编程是更先进一步编程思想而是附属于面向对象编程的体系属于其中一部分它是面向对象编程体系中的思想精髓之一。面向接口编程它的核心思想是将抽象与实现分离从组件的级别来设计代码达到高内聚低耦合的目的。面向接口编程方法是先定义底层接口模块也就是 通信的协议与功能约定 是提供方实现对应的功能与能力。在架构中层次分明不需要关注具体实现开发中可以通过接口快速制定协议与提供能力api对于上层通过接口显露能力对于下层只需要依赖接口层相当于依赖api。 面向接口编程的好处 灵活性高没有依赖具体的实体实现层可以任意的更改与切换。在模块化 点击领取完整开源项目《安卓学习笔记总结最新移动架构视频大厂安卓面试真题项目实战源码讲义》 中可以相互依赖service(接口层)或依赖多个。‍ ‍在模块化中的使用下面对于接口interface或api层统称为service其含义为服务提供者。 对于每一个 module 都一个独立的工程结构每个 module 都有自己的 Service ,来统一暴露当前 module 所拥有能力与向外提供的服务。 对于 module 是在同一个工程里的项目结构service 可以放到统一的一个 Module 下我们统称为 Mediator这样做的目的是为了减少 Module 创建与维护。假设你的工程有20个业务 Module 如果都同时增加一个 service 层就会造成 Module 数量翻一倍。由于这里存入的都一些接口类也是每个业务 Module 向外提供的服务其体量不会太大这里并只是一个建议并没有标准的做法。 当然也有更复杂的设计一个 Module 又分不同的 service 实现如图这里不在展开细说。 实际工程中使用与设计 在实际项目中有很多项目都同时开发两版本Pad与Phone有的是两独立的工程有的是在同一个工程内用 flavor 切换不同的工程下面我就以通过 flavor 切换的工程结构举例。先看下工程的包的结构图 可以看到 module 结构是分为三个部分common, pad, phone, 如果每个service 都独立将增加3倍的 Module 数量。 使用一个 Mediator Module 统一管理这这些 service 就很好控制了 module 数量。 Service 创建 在 module_mediator 业务 module 下 commonpad、pone 下分别创建ICommonService, IService(pad), IService(phone)。ICommonService公共服务。IService(pad)pad服务并继承CommonService。IService(phone)phone服务并继承CommonService。 注这里为什么不用PadService与PhoneService是因为pad与phone版本同时只会存在一个使用方只需要关心你提供的Service不用在区分版本而且这里是一个继承关系也可以获取到共用的部分。 Service 实现 依赖 Mediator : 在业务 common\pad\phone module 下分别实现ICommonService, Service(pad), IService(phone) 在 common module 创建 CommonServiceImpl 实现 ICommonService在 pad、phone module 分别创建 ServiceImpl 对应实现 IService 并继承与 CommonServiceImpl。 Service 注册 注册的方式有一般是通过代码用去注册或通过注解进行注册。可以在 Application 注册也可以在业务 Module 下自己注册如果使用注解则可以自动注册具体要看项目怎样实现。例 解释下 MediatorServiceFacator它只是一个服务工厂也是一个接口类作用是负责管理各业务方的 Service 主要功能是注册与获取 Service。上面的代码就是往里注册了一个会员的 Service。 可以看出这个函数只有两个参数一个是接口class一个是实现类class第一个参数cls它会作为 key 来使用第二个参数implClass它会作为 value 来使用。 Service 使用 通过 MediatorServiceFacator 懒加载获取service对象如果业务方没有注册则获取一个空的对象。 注册有 service 没有使用时是不会创建的如果使用过则会缓存下来下次调用则直接返回。第一次是通过反射创建例 在 mediator 模块下会员 CommonService 中 定义了一个模糊查询会员的方法。 在会员模块下 common 中实现了该功能。 在会员模块下 pad 中继承了这个实现。 在其他模块 pad 下使用这个功能。 可以看到获取 Service 只要传对应接口就即可对于使用方是不用关心实现方在开发过程中只要先定义好接口合作的同学就可以进入正常开发了。细心的同学可以看出返回的数据类型也是一个接口类为什么不直接返回一个普通 java 类呢主要原因是通过接口方法达到双方 api 约定例如 getName() :String 方法是通过方法名返回值达到约定效果这样不依赖具体实现。 从上面的例子可以看出主要分为三个部分1、定义接口。2、提供方实现接口。3、使用方都通过服务工厂获取服务使用。对于使用者来是很简单的不需要关心实现通过接口可以直接获取到实现并且获取到结果可以直接使用不需要做序列化处理。 有了路由通信我们为什么还使用面向接口编程 路由模式虽然很好的解决了耦合的问题但他的方法调用都是静态的对于传参与返回值只能是基本类型如果是对象需要做序列化与反序列化处理对性能有一定影响。类似在调后台接口一样同时降低了代码的可读性 对于 app 而言所有 Module 都是在同一个应用下没有必要做这些序列化操作。 对于复杂业务不好处理例如一个业务需要多次通信路由模式则不好处理而通过接口通信则可以容易解决。例如一个读卡的操作业务方需要对它有开启、关闭、暂停等多个状态的操作。通过接口则可以直接返回一个读卡的 service 控制器 这样可以直接进行相应的控制操作。 从上面代码中可以看出上层回调结果的同时并回调了一个控制接口这样就提供使用方一个反向操作的能力。 尾声 开发是需要一定的基础的我是08年开始进入Android这行的在这期间经历了Android的鼎盛时期和所谓的Android”凉了“。中间当然也有着不可说的心酸看着身边朋友同事一个个转前端换行业其实当时我的心也有过犹豫但是我还是坚持下来了这次的疫情就是一个好的机会大浪淘沙优胜劣汰。再等等说不定下一个黄金浪潮就被你等到了。 这是我在这行工作10几年积累的一些资料如果还想继续在这行业走下去的或者现在打算跳槽可以**私信【学习】**我愿意把资料免费分享给大家。 或者直接点击下面链接领取 Android学习PDF架构视频面试文档源码笔记 330页 PDF Android核心笔记 几十套阿里 、字节跳动、腾讯、华为、美团等公司2020年的面试题 PDF和思维脑图包含知识脉络 诸多细节 Android进阶系统学习视频 9649197752)] [外链图片转存中…(img-u9XUR5NB-1709649197752)] PDF和思维脑图包含知识脉络 诸多细节 [外链图片转存中…(img-VBztrLYV-1709649197753)] Android进阶系统学习视频

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

商城网站制作深圳网站制作郑州软件开发学校

以下内容以本人遇到的真实问题为例,从找到加装固态硬盘后出现黑屏及蓝屏的原因,到成功解决问题,请各位看官听我娓娓道来,也希望为遇到同样问题的广大网友拨云见日,废话不多说,走起……一、问题描述:1. 背景…

淄博网站建设网站推广网络推广好的公司

题目 题目链接 题意 据说这道题要用一道叫做LCT的数据结构,然而我不会。。。 一排有n个弹簧装置,从第ii个可一往后跳k[i]" role="presentation" style="position: relative;">k[i]k[i]步。 修改:修改某个位…

南通网站外包wordpress文档案例

本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语言有几种?( ) A. 1 B. 2 C…

长沙公众号开发合肥seo优化

name input("请输入你的名字:") age input("请输入你的年龄:") print("我的名字是:"name" 年龄是:"age) #print(name) #print(age) 这是在本地调试的结果。因为程序是在远程服务器上执…

学做窗帘要下载哪个网站做软件的公司网站有哪些

一、 数据查看让我们先来回顾一下表格的基本构成,最上面的为表头,横为行,纵为列,内容区每一组展示数据区域为单元格。 表格的设计,虽然看似简单,但是作为用户最常用的组件之一,我们需要对视觉和…

上传网站标志唐山市住房和城乡建设局官方网站

前言 最近在学习Python爬虫的知识,既然眼睛会了难免忍不住要实践一把。 不废话直接上主题 代码不复杂,简单的例子奉上: import requests from lxml import etreecookie 浏览器F12网络请求标头里有 user_agent 浏览器F12网络请求标头里有…

企业网站一般用什么框架做网站策划主要做什么工作

网上下载源码包 wget http://网址 如果没有wget yum install -y wget建议下载下来的源码包,统一放到/usr/local/scr/下,方便维护管理养成查看INSTALL和README文档的习惯,内有软件安装方法和详细信息。1. ./configure --prefix/usr/l…

网站页面设计报价模板找大学生做网站

网上教程一大堆,我这边就不再赘述废话了 思路方法: 1,以四个为一组,最终的内存所占结果必须是四的倍数 2,优先考虑四的整数倍,之后再考虑内存空间问题 struct Beyond{int a;char b;short c;}; int mai…

电商网站有哪些类型住房建设部官方网站

文章目录 直接定义nn.Sequential(), 然后append(),最后直接net(),少写很多forward,适合直连式网络 直接定义nn.Sequential(), 然后append(),最后直接net(),少写很多forward,适合直连式网络 代码来源:https://github.com/zshhans/MSD-Mixer/b…

浙江建设局网站做站群的网站要备案吗

文章目录 1. Tomcat的安装与使用1.1 Tomcat安装1.2 Tomcat的启动1.3 Tomcat部署前端页面 2. Servlet2.1 Servlet是什么2.2 第一个Servlet程序2.3 常见错误 1. Tomcat的安装与使用 1.1 Tomcat安装 在浏览器中搜索Tomcat,打开官方网页.Tomcat官网 点击下载Tomcat8. 点击下载压…

网站改版好吗wordpress php7 500

哈希碰撞 哈希碰撞是指找到两个不一样的值,它们的哈希值却相同 假设哈希函数的取值空间大小为k ,计算次数为n 先算每个值不一样的概率P’ 所以至少两个值相同(即存在哈希碰撞)的概率P为 生日悖论 假设班里有50个人,求班里至少两个人相同…

网站 平台建设情况介绍软件著作权怎么写

目录题解待更新第一题:组队题目描述做为篮球队教练,你须要从如下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容。每位球员担任 1 号位至 5 号位时的评分以下表所示。请你计算首发阵容 1 号位至 5 号位的评分之和最大多是多少&am…

董家渡街道网站建设网页设计做军事网站的感想

C. 奇奇怪怪的魔法阵 题意: n个点m条边,定义集合S为独立集,当且仅当任意x,y∈S,x与y之间没有边。空集也是独立集 现在对于每一个点的集合T,有多少子集为独立集 设N0,1,…,n-1,AT∑S⊂T[S是独立集]A_{T}\sum_{S⊂T}[S…

深圳外贸建设网站用dw设计一个简单网页

最近在阅读 .NET Threadpool starvation, and how queuing makes it worse 这篇博文时发现文中代码中的一种 Task 用法之前从未见过,在网上看了一些资料后也是云里雾里不知其解,很是困扰。今天在程序员节的大好日子里终于想通了,于是写下这篇…

金山专业网站建设云南建设厅网站安全员报名入口

crAPI漏洞靶场与解题思路 1. 前置基础1.1 认识crAPI1.2 环境搭建1.3 API的分类与鉴别 2. 漏洞验证2.1 失效的对象级别授权挑战1:访问其它用户车辆的详细信息挑战2:访问其它用户的机械报告 2.2 失效的用户身份验证挑战3:重置其它用户的密码 2.…

网站没备案能百度推广吗怎么做公众号教程

文章目录1. 题目2. 解题1. 题目 你正在安装一个广告牌,并希望它高度最大。 这块广告牌将有两个钢制支架,两边各一个。每个钢支架的高度必须相等。 你有一堆可以焊接在一起的钢筋 rods。 举个例子,如果钢筋的长度为 1、2 和 3,则…

网站怎么自己做优化东莞建设企业网站

一、SQL事务基础 在数据库管理系统(DBMS)中,事务是指一个或一组数据库操作的执行单元,它被视为一个不可分割的工作单位。事务的目的是要确保数据库的完整性和一致性,即使在发生故障或错误的情况下也能保持数据的一致性…

网站友情链接的作用延安市住建建设网站

分析入口 给你一个城市,要如何开始分析,如下图: 分析一下城市的情况: 主要有: 行政区域地理位置,周围的地形经济发展情况X事发展的情况交通发展的情况其他:还包括农林、旅游、气象、地质、水…

iis7网站绑定域名163网易免费邮箱登录

🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏Redis实战与进阶 本专栏讲解Redis从原理到实践 …

上海网站开发团队成都做网站设计哪家最权威

2024年7月,国内领先的数据服务提供商景联文科技,成功入选艾瑞咨询发布的《2024年中国AI基础数据服务产业图谱》,这一荣誉不仅是对景联文科技在AI数据服务领域卓越成就的认可,也是对公司在未来发展中持续引领行业创新的高度期待。 …