网络协议的设计模式?

所以我正在构建一个相当简单的文件传输服务器/客户端,但很难找到一个好的设计来处理协议中的不同命令和状态。

假设您有3个不同的命令uploadremovedownload ,您可以使用3个不同的if语句,并使用额外的if语句跟踪状态,但这不会扩展并且无法维护。

责任链设计模式可用于连续的东西,如加密和压缩,但它不会处理命令的逻辑。

我知道这是一个相当广泛的问题,但有人有任何建议吗?

以下可能会有所帮助:

根据某些条件为同一操作提供不同的实现: http : //en.wikipedia.org/wiki/Strategy_pattern

维护通信状态(例如当前协议命令): http : //en.wikipedia.org/wiki/State_pattern

对于安全/压缩: http : //en.wikipedia.org/wiki/Decorator_pattern或责任链