软件系统设计,如何有清晰合理的架构,分清各个层次的职责,是非常重要的。
假设一个系统有两个层次,应用层和通信层,那分清楚应用层和通信层的职责是非常重要的。
比如通信层是一个数据库连接池,负责数据库连接的管理和执行SQL,而应用层负责根据应用逻辑调用数据库SQL。
这个时候,数据库连接断了,这个重连的职责是由应用层负责?还是由通信层负责?
简单的办法是由通信层负责,这样应用层就不需要关心重连的过程。简化了应用层的工作。
也有可能是应用层负责,因为应用层可以根据业务需要,对重连的策略进行处理。
但是不论哪一个模块负责,最糟糕的解决办法莫过于,两个都去处理。因为这个时候,两者都掌握的数据库连接的控制和管理权力,这个时候系统的管理就非常困难。就好像一个下属,但是有两个上司,一个可能指挥他做事情A,一个可能指挥他做事情B。
假设一个系统有两个层次,应用层和通信层,那分清楚应用层和通信层的职责是非常重要的。
比如通信层是一个数据库连接池,负责数据库连接的管理和执行SQL,而应用层负责根据应用逻辑调用数据库SQL。
这个时候,数据库连接断了,这个重连的职责是由应用层负责?还是由通信层负责?
简单的办法是由通信层负责,这样应用层就不需要关心重连的过程。简化了应用层的工作。
也有可能是应用层负责,因为应用层可以根据业务需要,对重连的策略进行处理。
但是不论哪一个模块负责,最糟糕的解决办法莫过于,两个都去处理。因为这个时候,两者都掌握的数据库连接的控制和管理权力,这个时候系统的管理就非常困难。就好像一个下属,但是有两个上司,一个可能指挥他做事情A,一个可能指挥他做事情B。