入口系统:把外部输入转换成系统调用

入口系统是程序的第一个角色——它不解决业务问题,它负责「外部输入怎么进来、怎么找到对应的功能、怎么调用」。CLI 入口按命令组织,GUI 入口按页面组织,Server 入口按请求组织。入口系统的形态决定程序对外的样子。


一、入口系统是什么

入口系统的职责一句话:

把外部输入转换成系统调用。

1
2
3
4
5
外部输入(命令/点击/请求)

入口系统

系统调用(调用业务接口)

它不关心业务怎么实现,只关心「输入怎么进来、怎么找到功能、怎么返回结果」。


二、入口的骨架

所有入口共享同一个骨架(从指令到系统主线的结论):

1
接受 → 解析 → 分发 → 调用 → 业务
1
2
3
4
接受:外部输入进来了
解析:输入是什么意思(命令名?页面?请求路径?)
分发:这个输入对应哪个功能
调用:调用业务接口

三、三种入口形态

CLI 入口:按命令组织

1
2
3
4
5
CLI 入口系统
├── 参数解析 parse(argc, argv)
├── 命令解析 输入的是什么命令
├── 分发 找到对应的 Command
└── 调用 调用业务接口

设计路线:

1
命令设计 → 参数设计 → 解析设计 → 分发设计 → 调用设计 → 输出设计

GUI 入口:按页面组织

1
2
3
4
5
GUI 入口系统
├── 页面 / 区域 / 组件 / 控件
├── 交互(接受)→ 用户流程(分发)→ ViewModel(调用)
├── 状态同步(View ↔ ViewModel)
└── 调用业务接口

设计路线:

1
2
信息设计 → 页面设计 → 区域设计 → 组件设计 → 控件设计
→ 交互设计 → 用户流程 → 视觉设计 → UI规范

Server 入口:按请求组织

1
2
3
4
5
6
Server 入口系统
├── 网络接口(socket/HTTP,接受)
├── 请求解析(Parser)
├── 请求分发(Router/Dispatcher)
├── 调用(Handler)
└── 状态(连接/会话生命周期)

设计路线:

1
协议设计 → 请求模型设计 → 解析设计 → 分发设计 → Handler 设计

四、入口系统的组织原则

三种入口形态不同,但共享组织原则:

1
2
3
4
✅ 入口不拥有业务(业务在业务系统)
✅ 入口按输入组织(命令/页面/请求),不按业务组织
✅ 入口是「适配器」(把外部输入适配成内部调用)
✅ 入口可以替换(同一业务,CLI/GUI/Server 三个入口)
1
2
3
4
5
6
7
┌── CLI  → Call Layer   → Business API
├── GUI → ViewModel → Business API
└── Web → Router/Handler → Business API

Business Components

Data + Algorithm + API

CLI、GUI、Web 不是业务本身,而是不同的交互/调用子系统。 业务功能被拆成独立组件,Application 负责最终组装。


五、入口的进一步拆分

入口内部还可以进一步拆分(对应其他线):

1
2
3
4
5
6
7
8
CLI 入口:接受 → 解析 → 分发 → 调用(从指令到系统主线)

GUI 入口:MVVM 进一步拆分
→ 接受在控件交互、分发在用户流程、调用在 ViewModel
→ View ↔ ViewModel 靠状态变化同步(04-系统角色/08,本主题内)

Server 入口:网络接口(接受)+ 解析分发 + 调用 + 状态
→ 落在三系统边界上端(服务器线)

六、和其他内容的关系

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
入口系统 ←→ 从指令到系统(主线)
主线讲入口骨架:接受→解析→分发→调用

入口系统 ←→ GUI-MVVM
GUI 入口的进一步拆分:页面 + ViewModel + 状态变化

入口系统 ←→ 服务器
Server 是入口系统的完整实例(长期运行)

入口系统 ←→ 从输入到交互
从输入到交互讲「用户怎么操作入口」(外部视角)
本线讲「入口内部怎么组织」(内部视角)

入口系统 ←→ 系统角色主题
02 是主题的第二个角色

收束

1
2
3
4
5
6
7
8
9
10
11
12
13
入口系统 = 把外部输入转换成系统调用
不解决业务,只负责「输入怎么进来、怎么找到功能」

入口骨架:接受 → 解析 → 分发 → 调用

三种入口形态:
CLI(按命令)/ GUI(按页面)/ Server(按请求)

组织原则:
不拥有业务 / 按输入组织 / 是适配器 / 可替换

入口可进一步拆分:
CLI 拆成四阶段,GUI 拆成 MVVM,Server 拆成解析+分发+调用

入口系统是程序的对外脸面。 形态随输入类型变,骨架不变——接受、解析、分发、调用。