我正在开发一个程序可以执行许多操作的应用程序。它依赖于导入的XML文件和建立的DB连接。但是,某些功能可以在没有导入xml文件的情况下工作,有些功能只有在导入XML或仅在连接数据库时才能工作。
所以,我的问题是我应该使用什么设计模式来模拟这个?我读到了状态模式,其中对象的行为相对于当前状态发生了变化。这是一个很好的方式吗?例如,我可以有几种状态:XML_FILE_IMPORTED_ONLY,DB_CONNECTED_ONLY,XML_IMPORTRED_AND_DB_CONNECTED,NOTHING_IMPORTED并基于对象的当前状态相关功能将可用?
非常感谢任何帮助。
此致
斯托
答案 0 :(得分:0)
您有两台状态机,每台都控制整个州的一部分。每个状态机将独立于另一个执行转换。
初始状态: 未导入
初始状态: 未连接
编辑:状态机对此问题有点过分。
有问题的状态机每个都有两个状态,每个方向有一个转换。表示这种情况的更好方法是使用boolean
变量。
boolean dbConnected;
boolean xmlImported;