【发布时间】:2021-03-27 15:07:38
【问题描述】:
我有一个用 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、工厂方法)?目的是尽量减少重复
【问题讨论】:
-
class有self而方法没有?您应该将您的问题建立在 working 示例上。 -
@KlausD.code 已更新
-
这些类在我看来完全一样...它们有什么不同吗?
-
@juanpa.arrivillaga 类适用于不同的数据库。我不想在此处放置有关架构的任何信息。这就是为什么它们看起来都一样。
-
@CCCCos 不会将该信息硬编码到您的类中,而是使用一个类并将其作为参数传递给您的构造函数。