我正在开发一个小程序 - 该程序的主要功能是将“数据”从一个“地方”“传输”到另一个“地方”,并将统计信息(如时间戳、成功与否等)记录到 sqlite 数据库。此外,如果传输失败,程序应该能够重试几次。
目前,“数据”、“地点”和“传输”的假设很简单:
我有两个主要问题:
如果我的理解是正确的,那么您希望将系统设计为对新功能开放,例如新的传输方法和数据类型。
要实现所有的传输方法,您应该公开一个接口来定义传输服务。该接口在您的设计中发挥着重要作用,并且应该简单以将实现细节与客户的需求分开。例如,不要在接口定义中包含凭据信息。将其保留在具体类中并将信息注入构造函数中。
您所有的转账方法都必须实现 ITransferService 接口(它们将是策略模式中的策略)
最好使用命令模式来处理传输。例如,使用命令类来表达接口方法的输入参数。
最好使用工厂模式来选择使用哪种传输服务。
为了支持未来的数据类型,您应该使用复合模式来定义数据结构。
所有这些建议都可以帮助您遵守 SOLID 原则,尤其是开闭原则。这种设计使软件易于更改和添加新功能。