关于我认为的软件架构

问题描述 投票:0回答:1

我的项目有 4 个级别:

  • view
  • {placeholder}
  • controllers
  • models

级别

{placeholder}
负责清理用户输入并对它们进行多次分类,分类后它会转向
controllers
之一。

问题:

  1. 这是什么类型的架构?
  2. 我该如何称呼这个级别
    {placeholder}

背景: 用户仅通过控制台输入内容。 该输入如下:

  • 形式1:
    [expression]
  • 形式2:
    [command] [arguments] [expression]

因此

{placeholder}
层接受该数据并发送
[expression]
,无论它是形式 1 还是 2,根据其方式对其进行分类,并将其与
model
级别的适当对象相关联。

另一方面,如果是形式 2,除了将

[expression]
model
关联之外,现在还需要将
[command] [arguments]
controller
的方法关联起来以对
<expression>
执行某些操作。

最后,在屏幕上显示结果,表达式可以是用户想要的任何内容,命令和参数都已经预定义了。

我已经读过它,但我对

{placeholder}
层有很多不同的可能性答案:

  • 通信层
  • 中间件
  • 代理
  • 路由器
  • 控制器的控制器
  • 装饰器
  • 控制层
  • 输入处理程序
  • 输入控制器

有太多不同的概念,我不知道该向哪里提出疑问。

design-patterns architecture command-line-interface
1个回答
0
投票

这是什么类型的架构?

它是模型-视图-控制器(MVC),它是交互式组件的基本设计模式。确实有无数的变化,例如MVVM 和 MVP 等(更不用说“MVC for the web”,这并不是真正的 MVC),但这些都源自 MVC,实际上是 MVC 的专业化/简化。

我对 {placeholder} 层有很多不同的可能性答案

没有标准名称,我称之为“驱动程序”,无论如何,它只是一个编排/管道包装器,(IMO)一旦事情不那么简单,你最终就会需要一个,所以你确实在正确的轨道上。只是一个反对/警告:MVC 模式是不是线性的,它是一个三角形(然后你可以看到它的真正意义是什么:打破循环依赖......)

这里是这种架构的一个具体示例(这是我的非常旧代码,请忍受一些天真,无论如何,这里的重点只是整体架构思想):TicTacToe 1.2.B / Docs

© www.soinside.com 2019 - 2024. All rights reserved.