zoukankan      html  css  js  c++  java
  • Android框架式编程之架构方案

    目前移动端应用市场已经是百花齐放,很多独角兽公司都是通过App创业发展起来的,现在App类型更加丰富,功能越来越完善,基本上涵盖了各个行业的每个角落。为了开发出更加有竞争力的App,不仅需要功能上有创新,内容也需要更加多元化,这样就出现了相对巨大的工程。这些工程代码不停添加,如果没有一个好的架构,那么所有代码都会强耦合在一起,功能之间也会出现很多依赖,那么就会出现很多问题,例如:

    1、修改功能困难,牵一发动全身。很多地方如果api写的不好,封装不优雅,那么就会出现改一个地方需要改很多地方的调用。
    2、更新迭代工作中冗余废弃代码资源过多造成删除冗余变得很复杂,并且很可能出现很多bug。

    为了解决上述的问题,经过长时间摸索和发展,当今已经有相当成熟的方案来保证尽量避免上述问题的出现。而架构就是为此而生的概念,架构在实际开发中又分为代码架构和项目架构。其中:

    1、代码架构主要分为三类:MVC、MVP 和 MVVM。

    2、项目架构主要分为:单工程模式、模块化、组件化、插件化。

    如图所示:

    架构的核心思想:分层通信

    1. 子模块的划分

    除了常见的common部分抽离, 业务模块的划分尤为重要,相比于狭义上的架构,广义上的子系统的划分的关注点,很考验技术经验以及对业务的理解。

    2. 通信方式

    模块化的通信方式,无非是相互引入;抽取出来了common模块, 其他模块使用自然要引入这个module
    组件化的通信方式,按理说可以划分为多种,主流的是隐式和路由。隐式的存在使解耦与灵活大大降低,因此路由是主流。
    插件化的通信方式,不同插件本身就是不同的进程了。因此通信方式偏向于Binder机制类似的进程间通信。

    下面整理的就是组件间通信方式的相关架构说明:

     

  • 相关阅读:
    ios 中的循环引用问题及解决
    Leetcode-Maximum Depth of Binary Tree
    Leetcode-Min Stack
    Leetcode-Intersection of Two Linked Lists
    Leetcode-Binary Tree Inorder Traversal
    Leetcode-Unique Binary Search Trees II
    Leetcode-Unique Binary Search Trees
    Leetcode-binary Tree Zigzag Level Order Traversal
    Leetcode-Construct Binary Tree from inorder and preorder travesal
    Leetcode-Next Permutation
  • 原文地址:https://www.cnblogs.com/renhui/p/11791672.html
Copyright © 2011-2022 走看看