2013-03-30 22 views
1

我在将软件设计与建筑模式进行映射时遇到困惑。这是一个分层的体系结构吗?

下图描述了我的主张。 enter image description here

我想问问是什么 -

  1. 是第三层真正的一层或二层的只是一个组成部分?
  2. 第四层是构建我的所有软件的资源。他们是那些不提供服务的人,但是所有的工作都完成了,所有的工作都完成了。他们是否被包含在架构描述中?
+0

图像太小,根本无法辨认出任何东西。 – Koterpillar

+0

好吧,我点击了链接http://s20.postimg.org/gjuxkg0al/for_stack_overflow.png现在它的分辨率非常大。你确定你的浏览器没有显示缩小的图像吗? – khoks

+0

现在看起来不错,或许被重新上传了。 – Koterpillar

回答

1

图层不是一个确切的术语,它可以根据您的需求进行定制。 这就是说,我会安排你的设计有一点不同:

  • 你的第三层其实是一个面层/包,提供的服务,您的主要软件流程,但不会对他们有积极的作用。更合适的做法是将其与可以根据需要与所需服务进行交互的2个第一层一起使用。

  • 第四层确实不应该成为你设计的一部分,因为它实际上是你系统之外的实体的描述。您可以概述这些实体的接口,但它们不会在您的系统中构建层。

您还可以看看设计描绘了一个更加正式的方法 - 检查UML的Package diagramsLayer diagrams(不标准,但接近你寻找什么)。

+0

这里的问题在于,第三层(工具和服务)仅由第二层(Command API)使用,而不是由GUI使用。我介绍了第二层来隐藏GUI中的服务和工具的细节。我的设计遵循严格的从上到下的通信流程,如在TCP/IP协议套件中。另外,我不能将第三层视为一个侧面组件,因为我的所有功能最终都是由这个服务/工具层执行的,而且它对于每个操作都是必需的。你说得对,我认为这应该是第四层,这应该通过对它的怀疑来清除 – khoks

+0

如果工具和服务仅用于第二层,那么最好将它作为第二层的一部分。保持正确的范围很重要 – SomeWittyUsername

+0

我也这么认为。但是,然后,根据分层架构模式,每一层都只针对其上层。即使第二层仅由GUI层使用。我虽然最初将第二层和第三层分组为一层,但由于工具和服务没有任何统一的主题/界面。但是,即使在TCP/IP协议套件中,每层都有多种协议可供选择,这些协议是相互独立的。而且,对于API,应用程序编程接口层封装了常用功能的较低层。 – khoks