入口系统:把外部输入转换成系统调用
入口系统是程序的第一个角色——它不解决业务问题,它负责「外部输入怎么进来、怎么找到对应的功能、怎么调用」。CLI 入口按命令组织,GUI 入口按页面组织,Server 入口按请求组织。入口系统的形态决定程序对外的样子。
一、入口系统是什么 入口系统的职责一句话:
把外部输入转换成系统调用。
1 2 3 4 5 外部输入(命令/点击/请求) ↓ 入口系统 ↓ 系统调用(调用业务接口)
它不关心业务怎么实现,只关心「输入怎么进来、怎么找到功能、怎么返回结果」。
二、入口的骨架 所有入口共享同一个骨架(从指令到系统主线的结论):
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 拆成解析+分发+调用
入口系统是程序的对外脸面。 形态随输入类型变,骨架不变——接受、解析、分发、调用。