Android app按三层架构+MVC整理(重构)代码可行吗
项目是别人写的,领导让我们重构。
虽然有MVP和MVVM,但领导用了三层架构(表现层,业务层,数据访问层)+MVC这么多年,敲定还是按这种体系。领导负责定基调,具体的实施当然由我们这些人做。
于是大体上会把acvitivy/fragment拆一下,主要做controller控制器,view会从里面拆出来单独成一部分,通过接口与activity交互。然后加上实体等部分。
大致形成view(视图),controller(控制器),bll(业务逻辑层),dal(数据访问层),entity(实体)几个部分。
小弟的水平十分有限。基本上项目做了,界面实现了,也就实现了。架构和设计模式一窍不通。所以来请教一下。
基本上应用的界面不多。几个一级页面是fragment,退出前不会销毁。
每个页面倒是有一定程度的业务逻辑。
首先想到的就是工厂模式。一个总的业务工厂,然后根据控制器的需求创建不同的业务类。
数据访问层可能也是类似去做。
然后想了想,既然几个一级fragment都是不销毁的。
业务逻辑的工厂类一旦创建具体的业务类就保存起来,以备调用时不用重新创建。
然后这样一想,好多东西都没有被回收。
再加上数据访问层也用工厂。似乎大部分的对象创建后都一直留着。
完全不懂架构设计,请教前辈有没有好点的解决方式?
对于android拆成view(视图),controller(控制器),bll(业务逻辑层),dal(数据访问层),entity(实体)有什么看法?
Android app按三层架构+MVC整理(重构)代码可行吗相关推荐
- WPF MVVM 架构 Step By Step(2)(简单的三层架构示例及粘合代码GLUE code)
WPF MVVM 架构 Step By Step(2)(简单的三层架构示例及粘合代码GLUE code) 原文:WPF MVVM 架构 Step By Step(2)(简单的三层架构示例及粘合代码GL ...
- android APP隐私政策弹框的实现代码实例
android APP隐私政策弹框的实现代码实例 步骤一:在assets目录下放置隐私政策的文本文件,比如privacy.txt 步骤二:在drawable目录下放置圆角弹出框演示: <?xml ...
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
本文转载自https://www.tianmaying.com/tutorial/AndroidMVC,原文作者周鸿博. 和MVC框架模式一样,Model模型处理数据代码不变在Android的App开 ...
- php的mvc三层架构,MVC三层架构
1.三层架构 表现层(web层) web层:接受客户端请求,向客户端响应结果,通常客户端使用http协议请求: 控制层:负责接受请求 展示层:结果的展示 业务层(service层) 事务处理+业务处理 ...
- JSP-05三层架构+MVC
文章目录 @[toc] 一.回顾三层架构 1.1基本概念 1.2作用与组成 1.3三层架构命名规范 1.3.1UI层(表示层) 1.3.2业务逻辑层 1.3.3数据访问层 二.MVC 2.1MVC简介 ...
- Android App 瘦身总结 第三章 代码混淆及优化
目录 一.代码混淆proguard 二.调整第三方库 三.环境差异依赖 四.代码习惯 五.插件化 六.总结 在前两章我们分别从图片资源和jni动态库这两个方面来分析apk瘦身的优化点 Android ...
- android app自动化测试框架Appium资料整理
by Ruiming.Lv 1 自动化测试 1.1 自动化测试简介 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程.从广义上来讲,一切通过工具(程序)的方式来代替或辅助手工测试的 ...
- android app 64位架构升级 适配64位cpu架构
一. 本质 so库的升级 二.so库升级 1.so库检查 1,首先设置: abiFilters "armeabi-v7a","arm64-v8a",然后编译出对 ...
- Scoops android app多主题架构(一)
简要说明 Scoops是一个android应用库,主要解决的是多主题实现方案.通过配置多个R.style.Theme ,代码进行动态设置主题,重启当前界面实现. 原理分析 主要通过设置主题(存储设置值 ...
最新文章
- 我是如何将网站全站启用Https的?-记录博客安装配置SSL证书全过程
- 人像摄影哪家强?同为双摄的OPPO R11不敌金立S10
- linux安装redis教程yum,linux下yum安装redis以及使用
- 洛谷2051 [AHOI2009]中国象棋
- 台积电砸7500亿强攻5nm
- LUOGU P4016 负载平衡问题
- oracle导出客户机使用us7a,导出已复制的文件系统 - 
Oracle® ZFS Storage Appliance 管理指南,发行版 OS8.6.0...
- Modelsim-Altera仿真设置
- 所以進入到二十一世紀之後
- Ubuntu系统多屏幕时 触摸屏如何分屏定位
- IntelliJ IDEA 2019.1 EAP5 发布,Maven 构建输出统一查看
- 五个美观好用的全能性IDE推荐(更新)
- java 熄灯问题_遍历搜索空间的例子:熄灯问题
- c语言中大写a对应的数字,123456789a
- 如何破解XP开机密码
- 最流行的前端框架vue基础
- 一个小蜜蜂游戏的源代码
- 关于dva的put,put.resolve
- Go Moudle笔记
- tslearn使用轮廓系数(silhouette_score)评估KShape聚类效果
热门文章
- 【错误记录】Google Play 上架报错 ( 您的应用包含违反“元数据”政策的内容 | GP 政策中心 )
- 树莓派wifi环境下初始化及环境配置
- .Net软件测试化之道 [James D.MCCaffrey]
- vscode 常用插件安装
- 【BZOJ1294】[SCOI2009]围豆豆(动态规划,状压)
- 解决 git extensions 每次提交需要输入用户名和密码
- 20145228《Java程序设计》课程总结
- 百度地图API使用之实现定位
- POJ-2195(最小费用最大流)
- 一些有关计组实验中Quartus中的名词或术语的解释