松散耦合模块初始化的位置
Location of Initialization of loosely coupled modules
如果我的问题已经回答,请原谅我软件工程,找不到直接答案或一些清晰的信息。
我正在开发一个小型应用程序,简而言之,该应用程序连接到Web服务,获取一些数据并根据获取的数据播放一些音乐。我已经将应用程序的所有部分分为不同的"模块接口",例如" WebServiceInterface"," ConfigurationInterface"," SystemTrayInterface"等。我正在理解和amp;在我的应用中实现SRP(通常是固体)。
现在,所有这些接口&它们的实现在单独的标题/来源上被打破。所以我问题的简短版本是:"关于SRP,我应该声明& amp; amp;应用程序启动所需的必要的"模块"并使用它们?"
我的意思是,必须有一个位置(main(),一个函数或类),其中某些类被声明并初始化为适当的状态,以便应用程序实际启动。我的问题源于SRP指出的事实:
每个模块或班级都应在软件提供的功能的一个部分上承担责任,该责任应完全由类
封装
但是我很困惑,如果没有一个包含所有声明& amp;的地方。我的主要模块的实例化,我应该如何启动应用程序?
我看到了:https://stackoverflow.com/a/5744241/1044356
两个类之间的松散耦合意味着每个类对另一类的内部行为的了解很少。 您可能在属于同一"模块"或"软件包"的类之间具有更高程度的"耦合",这不是一个坏练习
这是否意味着我可以有一个将界面围绕界面包裹到彼此独立并设置它们的模块的类?对我来说,这听起来像是上帝的课程。
我可以在需要的情况下提供其他信息以清除任何歧义。
封装是关于隐藏内部实现详细信息。应用对象不需要知道Web服务对象如何检索数据,只有当该数据(应用程序)提出正确的格式请求时,它将获得数据以返回数据。它确实不是表示如果需要提出此类请求,则该应用程序无法实例化。
一些成语(例如PIMPL)使您几乎可以通过为私人实施辩护的公共接口来隐藏所有实现详细信息。使用这样的成语您的应用程序WOD仅知道包装器,甚至无法看到使私有对象工作所需的数据。
这可以将其带到一个极端,其中唯一独立的对象(意味着不是另一个对象或至少由他人拥有的对象)是应用程序对象。
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 如何根据C++在同一内存位置重新初始化 C# 中的对象(还是自动完成)?
- 递增 'int i = 0' 以在初始化的字符数组的位置递增
- 为什么未初始化的内存位置的值给出 -842150451 的值?
- 如果不初始化结构中的向量,它会自动为空还是具有随机内存位置的值?
- 通过在此指针上放置新位置重新初始化对象时未定义的行为
- 检查向量是否在某个位置未初始化
- 在初始化的内存上使用放置新位置是否合法
- 松散耦合模块初始化的位置
- 是否可以在没有push_back(C++STL)的情况下使用数组初始化矢量的新位置
- 为什么与普通cout的行为相比,C 中的for循环访问非初始化的内存位置
- 无法写入使用 malloc 初始化的位置
- 初始化随机生成器的最佳位置
- 静态变量的初始化:位置相关
- 初始化静态成员变量值的正确位置
- 初始化 SSE 常量的位置
- 初始化多维数组中的所有位置
- 在皮条类中初始化默认值的最佳位置
- 位置new用于初始化原地对象
- c++初始化器不断地在同一内存位置创建新对象