Java 在两个单独的流之间建立通信
因此,我正在为我的应用程序开发一个简单的服务器。此服务器的基本用途是侦听请求,理解请求,将请求转发到域(服务器中的一个对象),然后域与文件系统交互以创建一些对象并将数据返回到请求的来源 到目前为止,我已经提出了如下设计: 因此,我所做的是启动一个具有连接器和引擎的服务Java 在两个单独的流之间建立通信,java,multithreading,design-patterns,Java,Multithreading,Design Patterns,因此,我正在为我的应用程序开发一个简单的服务器。此服务器的基本用途是侦听请求,理解请求,将请求转发到域(服务器中的一个对象),然后域与文件系统交互以创建一些对象并将数据返回到请求的来源 到目前为止,我已经提出了如下设计: 因此,我所做的是启动一个具有连接器和引擎的服务 连接器具有多个处理指定协议的协议处理程序。每个协议处理程序初始化一个端点侦听器,该侦听器打开一个套接字并侦听传入的请求 引擎有多个域,其中每个域在文件系统上都有其指定的用于读/写数据的目录 我能够初始化服务层,包括它的所有对
- 连接器
- 图中的所有内容都有一个生命周期(除了协议处理程序和端点),即
。可以添加侦听器以侦听生命周期状态中的更改init()->start()->stop()->destroy()
- 可能的生命周期状态为
新建、启动前、初始化、初始化、启动后、启动前、启动后、启动后、停止前、停止后、停止后、销毁前、销毁、销毁后
- 永远只有一个引擎
- 服务器作为线程运行,因此它应该是线程安全的
- 对于图中可见的每个对象,我都有接口
我不知道这是否是一个好问题,或者实现没有我想的那么混乱,但我想知道其他人认为什么是一个好方法…问题到底是什么?我希望引擎在端点接收到请求时处理请求…最大的问题是什么?你想让这两个组件解耦吗?是的。但是必须至少有一个连接器打开一个插座(在端口80上),任何传入的请求都应该由引擎处理,同时保持连接器不知道引擎。