首页 > 解决方案 > 申请类以访问不同数据库的最佳创建模式是什么

问题描述

我有一个用 python 编写的应用程序

目前大约有 5 个类用于访问不同的数据库。

这些类的结构如下(我知道它设计得很糟糕):

class access_db_a:
      def __init__(self, db):
          self.mydb = None
      def connect(self):
        mydb = mysql.connector.connect(
        host=info["db_2_host"],
        user=info["user"],
        passwd=info["passwd"],
        database=info["db_2"],
        )
      def select(self):
          mycursor = mydb.cursor()
          mycursor.execute("SELECT * FROM {}".format(TABLE_NAME))
          myresult = mycursor.fetchall()
          for x in myresult:
              print(x)
      def insert(self):
          mycursor = mydb.cursor()
          query = {'queries for db'}

class access_db_b:
      def __init__(self, db_2):
          self.mydb = None
      def connect(self, db_2):        
        mydb = mysql.connector.connect(
        host=info["db_2_host"],
        user=info["user"],
        passwd=info["passwd"],
        database=info["db_2"],
        )
      def select(self):
          mycursor = mydb.cursor()
          mycursor.execute("SELECT * FROM {}".format(TABLE_NAME))
          myresult = mycursor.fetchall()
          for x in myresult:
              print(x)
      def insert(self):
          mycursor = mydb.cursor()
          query = {'queries for db_2'}

我的问题是:在这里应用的最佳创建设计模式是什么(即Signleton,工厂方法)?目的是尽量减少重复

标签: pythondesign-patterns

解决方案


我不确定我明白你在问什么。如果您尝试在数据库上调用这些定义,则需要定义它们。因为他们什么都不做。如果它们是 python 库或其他模块中已经存在的函数,那么您根本不需要将它们放在一个类中。定义它们后,您可以在数据库上调用它们。


推荐阅读