设计模式框架

MVC设计模式将系统分为模型、视图和控制器三层。模型负责业务逻辑,视图处理用户交互,控制器作为两者间的桥梁。在Android开发中,视图可能用XML或JavaScript+HTML实现,控制器主要由Activity担任,而模型层处理数据库和网络操作等。遵循MVC模式,可以提高代码组织性和响应速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MVC设计模式



  •  MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑。 View层用于与用户的交互。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作
  •  1) 视图层(View):一般采用XML文件进行界面的描述,使用的时候可以非常方便的引入。当然,如何你对Android了解的比较的多了话,就一定可以想到在Android中也可以使用JavaScript+HTML等的方式作为View层,当然这里需要进行Java和JavaScript之间的通信,幸运的是,Android提供了它们之间非常方便的通信实现。    
  •  2) 控制层(Controller):Android的控制层的重任通常落在了众多的Acitvity的肩上,这句话也就暗含了不要在Acitivity中写耗时代码,要通过Activity交割Model业务逻辑层处理,这样做的另外一个原因是Android中的Acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。
  • 3) 模型层(Model):对数据库的操作、对网络等的操作都应该在Model里面处理,当然对业务计算等操作也是必须放在的该层的。就是应用程序中二进制的数据。

MVP设计模式


          MVP  是从经典的模式 MVC 演变而来,它们的基本思想有相通的地方: Controller/Presenter 负责逻辑的处理, Model 提供数据, View 负责显示。作为一种新的模式, MVP MVC 有着一个重大的区别:在 MVP View 并不直接使用 Model ,它们之间的通信是通过 Presenter (MVC 中的 Controller) 来进行的,所有的交互都发生在 Presenter 内部,而在 MVC View 会从直接 Model 中读取数据而不是通过  Controller
MVP 模式里通常包含 4 个要素:
(1)View: 负责绘制 UI 元素、与用户进行交互 ( Android 中体现为 Activity);
(2)View interface: 需要 View 实现的接口, View 通过 View interface Presenter 进行交互,降低耦合,方便进行单元测试 ;
(3)Model: 负责存储、检索、操纵数据 ( 有时也实现一个 Model interface 用来降低耦合 );
(4)Presenter: 作为 View Model 交互的中间纽带,处理与用户交互的负责逻辑。


MVVM设计模式


MVVM 其实是一个MVC的增强版,并将表示逻辑从Controller移出放到一个新的对象里,即ViewModel。
组成部分Model、View、ViewModel
View:UI界面
ViewModel:它是View的抽象,负责View与Model之间信息转换,将View的Command传送到Model;
Model:数据访问层

View与ViewModule连接可以通过下面的方式
Binding Data:实现数据的传递
Command:实现操作的调用
AttachBehavior:实现控件加载过程中的操作
View没有大量代码逻辑。结合WPF、Silverlight绑定机制,MVP演变出了MVVM,充分利用了WPF、Silverlight的优势,将大量代码逻辑、状态转到ViewModel,可以说MVVM是专门为WPF、Silverlight打造的。
View绑定到ViewModel,然后执行一些命令在向它请求一个动作。而反过来,ViewModel跟Model通讯,告诉它更新来响应UI。这样便使得为应用构建UI非常的容易。往一个应用程序上贴一个界面越容易,外观设计师就越容易使用Blend来创建一个漂亮的界面。同时,当UI和功能越来越松耦合的时候,功能的可测试性就越来越强。

运用设计模式的思想
1、物理分离
将处理业务逻辑、 UI 布局、数据存储的代码进行物理分离,分别放在不同的文件中。
2、外部调用
不同的层之间交互一定是通过调用层的开放方法来实现,比如逻辑层不会调用 UI 层( view 类)的父类方法,而是调用其自定义方法。
3、降低耦合

设计模式关系内容
在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。它们的耦合度依次增强。
依赖关系: 对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
关联关系: 分为单向关联和双向关联。在java中,单向关联表现为:类A当中使用了类B,其中类B是作为类A的成员变量。双向关联表现为:类A当中使用了类B作为成员变量;同时类B中也使用了类A作为成员变量。 
聚合关系: 是关联关系的一种,耦合度强于关联,他们的代码表现是相同的,仅仅是在语义上有所区别:关联关系的对象间是相互独立的,而聚合关系的对象之间存在着包容关系,他们之间是“整体-个体”的相互关系。
组合关系: 是一种耦合度更强的关联关系。存在组合关系的类表示“整体-部分”的关联关系,“整体”负责“部分”的生命周期,他们之间是共生共死的;并且“部分”单独存在时没有任何意义。
继承: 表示类与类(或者接口与接口)之间的父子关系。
实现: 表示一个类实现一个或多个接口的方法。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值