1,APP架构设计
层次化(上层依赖下层,下层不能依赖上层。要分层次,参照android系统架构是怎样分层次的) ; 模块化(例如网络请求模块); 控件化(具有特定功能可以封装成一个控件)
2,页面架构MVC MVP MVVM
类型 | 创建过程 | Activity/Fragment | 特点 | 缺点 |
MVC | C-->M+V(c层创建了M层和V层) | 作为C层 | 分离了Model和Controller | 逻辑增多,C层越来越复杂 |
MVP | V-->P-->M | 作为V层 | 在MVC的基础上彻底分离了View和Model。V调用P中的方法,P通过接口回调V | presenter到View的交互会琐碎而复杂 |
MVVM | V-->VM-->M | 作为V层 | 在MVP的基础上增加DataBinding,代码量更小 | XML中包含代码 |
3, 搭建软件架构要具备:扩展性好 维护方便,那么就要遵循SOLID设计原则。什么是SOLID设计原则?
SOLID指的是 单一功能 开闭原则 里氏替换 接口隔离 依赖反转,指代了面向对象编程和面向对象设计的五个基本原则。它可以让我们更容易开发出一个容易维护和扩展的系统。
[S]单一功能原则 :单一功能原则 认为对象应该仅具有一种单一功能的概念
[o]开闭原则(ocp) 认为“软件体应该是对于扩展开放的,但是对于修改封闭的”的概念。 对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。也可以用变化和不变来说:封装不变的部分,开放变化的部分。一般用接口 继承的方式实现“开放”应对变化。用接口抽象你的职责,变化越多 那么实现接口的类越多 继承的子类越多。
[L]里氏替换原则 :里氏替换原则 认为“程序中的对象应该是可以在不改变程序正确性的前提下被它的子类所替换的”
[I]依赖反转原则 :认为一个方法应该遵从“依赖于抽象而不是一个实例” 。抽象是抽象类或者接口 定义了功能。