用户界面层负责向用户显示信息和解释用户指令。这里指的用户可以是另一个计算机系统，不一定是使用用户界面的人。

该层包含与其他应用系统（如web服务、RMI接口或web应用程序以及批处理前端）交互的接口与通信设施。

它负责输入参数的解释、验证以及转换。另外，它也负责输出参数的序列化，如通过HTTP协议向web浏览器或web服务客户端传输HTML或XML，或远程Java客户端的DTO类和远程外观接口的序列化。

可以看出，该层的主要职责是与外部用户（包括web服务、其他系统）交互，如接受用户的反馈，展示必要的数据信息。主要包含web部分和远程服务部分等。

web部分一般包含常见的Servlet，Controller等组件，而远程接口部分主要由Facade、DTO和Assembler等构成。

Facade：远程外观，一个粗粒度的外观，不含任何领域逻辑
DTO：数据传输对象
Assembler：对象组装器，负责数据传输对象与领域对象相互转换，不对外暴露