问题
接上文设计模式实践一:桥接模式+代理模式+抽象工厂实现既有业务的模式分离,功能模块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(