Android有一个核心ERP移动应用程序.客户要求其他功能需要更多屏幕(和活动)和额外功能.
有没有办法可以为核心移动应用程序添加一些扩展,以便集成额外的功能,还是应该在核心应用程序的代码之上进行编码?
我有兴趣找到一个专注于可扩展性的简洁解决方案,因为不同的客户可能会要求不同的附加功能.你会如何处理这样的问题?关于这样一个项目结构的任何提示也会受到欢迎.
如果额外的功能需要使用与核心应用程序相同的数据库,它会有所不同吗?
预先感谢您的帮助.
最佳答案
您的问题的答案在于Bertrand Meyer介绍的开放/封闭原则. Open/Closed Principle是一个非常简单的面向对象设计原则,其中指出了这一点
Software entities (classes,modules,functions,etc.) should be open for extension,but closed for modification”
从您的问题中可以清楚地看出,您已经确定了应用程序中的核心功能.因此,我建议,在开放/封闭原则的基础上,您应该冻结代码功能并在不破坏核心的情况下编写客户特定功能,而不是修改此核心功能并使其更具体.
现在回答你关于你可能遵循什么样的结构的问题.我建议您创建一个核心功能的库项目,并制作不同的客户特定项目,其中包括您的核心功能作为库项目.
如果您的应用程序使用与您的核心应用程序相同的数据库(只要您的所有应用程序都使用它),那么它就不会有所作为,否则它首先不应该在您的核心应用程序中.
希望这个解释能帮到你.
更新:
我的朋友指出,我可能没有理解这个问题.所以,而不是纠正我的旧帖子(…可能对其他人有用)我正在更新它.
因此,如果我理解正确,您就有一个您可能没有编码的ERP项目.根据我的说法,正确的方法仍然是你构建现有的代码.不要对此项目进行更改,而是将其作为库包含,因为如果从可靠的源下载项目,您将获得更新版本的好处,以及何时可用.