Design patterns 使用命令模式重构Python代码

Design patterns 使用命令模式重构Python代码,design-patterns,python-2.x,Design Patterns,Python 2.x,我正在重构包含20个方法的Python代码。每个方法更新不同的数据库字段。所有这些方法都会重复一些与打开数据库连接并提交更改相关的代码。传递给所有这些方法的参数都有一些公共参数,有些则没有。传递给这些方法的参数数量因数量而异。 每个方法都为自己构建适当的SQL命令(搜索/查询),格式化其数据库名称(可能会有所不同),并打开数据库连接。 下面列出了一些方法原型 updatelogintime(应用程序、会话、请求等) 禁用用户登录(应用程序、请求) getPgdbTableStruct(应用程序

我正在重构包含20个方法的Python代码。每个方法更新不同的数据库字段。所有这些方法都会重复一些与打开数据库连接并提交更改相关的代码。传递给所有这些方法的参数都有一些公共参数,有些则没有。传递给这些方法的参数数量因数量而异。 每个方法都为自己构建适当的SQL命令(搜索/查询),格式化其数据库名称(可能会有所不同),并打开数据库连接。 下面列出了一些方法原型

  • updatelogintime(应用程序、会话、请求等)
  • 禁用用户登录(应用程序、请求)
  • getPgdbTableStruct(应用程序、表名、会话)
  • getPgDbTables(应用程序、会话、用户管理)
  • getPgData(应用程序、表名、会话、thisOffset、filterResponse、limitToMax)
  • pg_delete(应用程序、表名、会话、sqlCommand、theRow)
  • pg_插入(应用程序、表名、会话、值)
我的目标是简化代码,避免在每个方法中重复某些代码。我想知道命令模式是否可以使用

我不清楚什么是调用方和接收方对象。通用代码在哪里(在基本命令或具体命令中)?我是否将每个sql命令字符串代码(每个方法都是唯一的)的构建放在接收方对象类中

我还想知道是否还有另一个优雅而简单的解决方案。
谢谢。

您可以创建一个类来实现数据库重复代码,并公开查询、删除和更新方法,如Java Spring JDBCTemplate。
在方法中使用此类可避免数据库代码重复。

感谢您的回复