VFPAED完全架构由6个部分组成:
(1)View: 只涉及用户界面以及输入事件交互,比如用户点击按钮,
我们需要从指定的框架(Framework)中取得相应部分的功能提供器(Provider),
然后调用Provider中的指定方法来实现相应功能,数据从方法参数进行传递,
Provider的功能,可能是通过执行某个动作(Action)来实现,也可能就是一些步骤
(2)Framework: 这是整个架构的核心,Framework需要负责存储Provider/Action/Data/Event,
软件被拆解为了若干个Framework,每个Framework都有自己的Provider/Action/Data/Event,
分工明确,比如要存取某个Data,则通过对应的Framework进行存取,
不过此处需要注意的事是Data应当是极少的,是一些生命周期同软件周期相同的数据,比如Android上可以存ApplicationContext
其它的数据则通过参数传递,要保证不被任何Provider/Action/Event所持有,
建议每个Framework都使用单例模式,因为Framework的生命周期与软件周期相同,
Framework中的每个Provider/Action/Data/Event应当都是可以被替换的,可以使用键值对的方式进行存储,方便替换
(3)Provider: 负责某个Framework中某个部分功能的提供,便于View层进行操作
(4)Action: 代表一个动作,比如检测更新是一个动作,而这个动作被注册到了相应的Framework,在任何时候任何地方都能随意执行这个动作,
只需要通过对应的Framework实例执行即可
(5)Event: 代表一个事件,在Provider方法的执行过程中,或者Action的执行过程中,可能触发一些事件,
同一个事件ID应当是对应多个事件的,这里建议每个事件ID都对应一个EventHandler,即事件处理器,
而一个事件ID对应一个事件处理器,事件处理器可以增加/移除事件,在触发事件的时候,即可同时触发多个事件对象
(6)Data: 每个Framework所包含的长周期数据,数据保存到Framework方便其他层随取随用