设计模式实践二:使用MVP实现业务逻辑和UI分离

本文旨在通过MVP模式解决业务逻辑和UI混合的问题,实现两者独立,业务模块和UI模块可以独立变化。模型层负责业务处理,视图层提供面向业务逻辑的接口,表现层协调模型层和视图层。模型层包含业务数据和操作,视图层封装UI对象并隐藏细节,表现层处理业务逻辑并控制UI展示。
摘要由CSDN通过智能技术生成

问题

接上文设计模式实践一:桥接模式+代理模式+抽象工厂实现既有业务的模式分离,功能模块ActSubject中,大部分UI和业务逻辑写在了一起。如此造成了业务处理混乱,业务流程不清晰,业务和UI互相依赖,耦合度高,无法独立变化。

目的

1,把业务处理和UI分离,使其相对独立,可以独立变化。
2,独立的业务模块,流程清晰完整,不需要UI就可以单独完成整个业务逻辑。
3,独立的UI模块,可以抽象底层UI,使底层UI变动不会影响上层调用者。

实现

把业务逻辑和UI分为MVP三层。模型层处理业务逻辑,视图层提供基于底层UI封装的抽象于UI的面向业务逻辑的接口,表现层调用模型层进行业务处理、调用视图层进行UI表现。

模型层的设计

模型层ActSubjectModel里面只有业务数据和数据操作方法,通过调用数据处理方法,可以在无UI的情况下完成整个业务流程。里面的业务数据在任何时机下都是全部正确的,都是处于同一状态的。如下,提供给外部的接口分为三类,数据操作、数据获取、状态判断。

abstract class ActSubjectModelBase{
   
	protected _someData1
	protected _someData2
	protected _someData3
	...

	handleXXXData1(data1) {
   
		...
	}
	handleXXXData2(data2) {
   
		...
	}
	...

	get isXXX1(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值