我有一个应用程序,有大约10个不同的组成部分(聊天,饲料,配置文件,设置,等等)。
我需要有能力创建多个应用程序,其中每一个将有许多组件。
示例:
我该怎么处理这个?
我正在考虑把每个组件构建成一个库,然后为每个应用程序构建一个就像拼图一样连接各个部分的应用程序。
这是正确的方法吗?还是有人有更好的建议?
谢谢
发布于 2015-04-25 21:54:33
您可以开发一个"SDK“项目(如Facebook ),它包括所有组件(聊天、提要、配置文件、用户等)。您可以在其他项目中使用该"SDK“作为库。为特定的应用程序使用您想要的任何组件。
这种方法将使"SDK“项目易于维护和易于升级。当您添加新功能(例如,专辑)时,您可以将其集成到"SDK“项目中,并与现有应用程序一起使用。
发布于 2015-05-01 06:32:19
这类可扩展的模块化设计对于构建更大规模的软件或软件非常有用,这些软件或软件旨在处理各种意想不到的未来需求,特别是当您正在考虑自下而上的方法时。
但是,处理此问题的有效方法有所不同,取决于您正在使用的语言和工具。
一个尴尬的部分是如何使模块能够在需要时互相交谈,以便您可以有效地将它们像乐高积木一样拼凑在一起。这通常会成为一种实际需要,因为您的软件的复杂性会增长到这样的程度:简单地将模块作为搁浅的岛屿完全解耦,并且只有一个“主”模块与所有模块进行通信,这通常已经不再足够了。通常,你的需求会增长,要求他们开始互相交谈。
例如,如果您使用的是Python这样的动态脚本语言,那么每个模块都很容易发布自己的公共接口,您可以开始让模块之间几乎毫不费力地进行对话。
如果您使用的是编译器和静态类型化语言(如C或C++ ),那么让每个模块发布自己的惟一接口就变得更加尴尬,而这些接口正被其他模块直接导入和使用。在这里,您需要使所有模块都可以访问标头,担心在进行更改时保留ABI,等等。更多的更改会破坏ABI,而其他模块则会因某个特定模块的接口而中断,因此我们倾向于进行一些不同的设计。
在这种情况下,您几乎总是想要一个包含所有抽象接口的中央软件开发工具包。然后,您的模块实现了这些接口,并且仍然彼此通信,尽管是间接的(插件A与SDK接口对话,后者与另一个插件B间接通信)。SDK建立了通信的中心总部,将消息从一个模块中继到另一个模块。
https://stackoverflow.com/questions/29871070
复制相似问题