当前位置: 萬仟网 > IT编程>软件设计>面向对象 > 项目结构优化设计之smv架构

项目结构优化设计之smv架构

2020年09月28日  | 萬仟网IT编程  | 我要评论
我的项目经历了三次结构性变化第一次:单module+mvc结构。随着项目业务的拓展,项目分包的差异化变迁以及团队人员的扩充,传统的单module方式明显已经不再适应团队和项目了。基于这种情况,我开始着手对项目进行结构调整。具体结构如下图:第二次:组件化+mvp结构根据根据业务进行组件划分,单人维护业务module,单module 运行、开发、调试;提高工作效率。具体结构如下图发展到现在,这个结构还能支持团队和项目需要,但是造成了分包维护的困难,对工作质量的上升也遇到了瓶颈。基于此我进行了

我的项目经历了三次结构性变化

第一次:单module+mvc结构。

随着项目业务的拓展,项目分包的差异化变迁以及团队人员的扩充,传统的单module方式
明显已经不再适应团队和项目了。基于这种情况,我开始着手对项目进行结构调整。
具体结构如下图:

在这里插入图片描述

第二次:组件化+mvp结构

根据根据业务进行组件划分,单人维护业务module,单module 运行、开发、调试;提高工作效率。
具体结构如下图在这里插入图片描述

发展到现在,这个结构还能支持团队和项目需要,但是造成了分包维护的困难,对工作质量的上升也遇到了瓶颈。
基于此我进行了第三次结构设计;顺利解决了分包维护,多人开发,分包发布的困难并满足了项目和团队需要;

第三次:smv 结构

在组件化和mvp的架构思想基础上,根据实际需要,我对组件化+mvp的结构进行了一次升级。具体项目结构如图:

在这里插入图片描述

为了区分 组件化+mvp 的架构,我把整体架构称为:smv架构。具体解释一下具体功能:
组件化不用过多的解释了,就是对具有不同功能的业务组件进行module封装;
主要说一下smv是什么意思吧

s -> service 服务
m -> businessmodule 数据
v -> view 视图

service是基础服务;
基础服务包含:网络工具,图片工具,自定义view等其他工具;
可以支持多个业务module;

businessmodule是业务服务。
业务服务包含:具体业务功能,包含业务数据处理,业务逻辑处理;不涉及ui和交互;
可以支持多个业务分包应用;
在这里插入图片描述

view是视图
视图包含:各业务的ui和交互。
依赖于业务服务,可以定制多个 ui/功能差异化分包,自由组合,自由拆分。

在这里插入图片描述

架构重点在于两方面:businessmodule是业务服务和view是视图。

总思路

:基础服务 + 业务服务 + ui交互 + 分包组装

使用:

view层持有businessmodule依赖。
businessmodule持有service依赖
view为分包表现层。

解决问题:

1、从结构上实现ui和业务的解耦。
2、技能满足单人开发维护,也能满足多人发开维护。
3、适用于单业务分角色分包模式。
4、减小开发和维护压力。
5、方便单元测试,业务功能和ui均可单独测试。
6、使性能优化,交互优化工作更简单。
结合mvp使用demo,后续更新…

本文地址:https://blog.csdn.net/Naide_S/article/details/108849622

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

  • 面向对象设计的七大原则

    面向对象设计的七大原则

    面向对象设计的七大原则 今天我们要谈的原则有七大原则,即:单一职责,里氏替换,迪米特法则,依赖倒转,接口隔离,合成/聚合原则,开放-封闭 。 1. ... [阅读全文]
  • C#传智播客

    01 基础加强六天02 数据库四天03 SQL和ADO三天04 JavaScript05 DOM06 JQuery07 .NET就业班-三层项目+S... [阅读全文]
  • java 三大基本特征

    java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】 封装:对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、对象的可重用... [阅读全文]
  • 面向对象编程 —— java实现函数求导

    面向对象编程 —— java实现函数求导

    首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地、科学地用java求出函数在一点的导数。 ★引子 首先... [阅读全文]
  • SpringBoot更改HttpMessageConverters使用FastJson出现乱码问题

    SpringBoot使用FastJson作为JSON格式转换器的标准工具时,出现乱码 ... [阅读全文]
  • 封装+继承+多态

    面向对象三大特性 封装: Encapsulation是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该... [阅读全文]
  • 面向对象的封装、继承、多态以及构造函数

    1、面向对象特点:封装、继承、多态。2、构造函数 = 构造器 + 原型对象;(1)父类function UserClass(name,age,wor... [阅读全文]
  • 多态及多态性和鸭子类型

    多态 什么是多态 指的是同一类/种事物的不同形态(其实就是继承关系的表现) 为何要用多态 多态性:在多态的背景下,可以在不用考虑对象具体类型的前提下... [阅读全文]
  • (C#、JavaScript)面向对象的程序设计

    (C#、JavaScript)面向对象的程序设计

    面向对象(OOP)的理解 喜欢程序的朋友们,大家应该都听过一句话“万物皆对象”,感觉老牛X了。 面向对象的程序设计,它是围绕真实世界来设计程序的。 面向... [阅读全文]
  • 面向对象之final关键字

    1.1 final的概念 final是个修饰符,它可以用来修饰类,类的成员,以及局部变量。不能修饰构造方法。 问题: 继承的出现提高了代码的复用性,... [阅读全文]
验证码:
Copyright © 2017-2020  萬仟网 保留所有权利. 粤ICP备17035492号-1