目前我正在开发这个Firebird模块来帮助我处理一些数据库文件,我对OOP与Functional之间存在疑问。代码:
功能:
import kinterbasedb
def create_cursor(dsn, user, password):
return connect(dsn=dsn, user=user, password=password).cursor()
def execute(database_cursor, query, fetch):
database_cursor.execute(query)
if fetch == "*":
return database_cursor.fetchall()
return database_cursor.fetchone()
然后:
from firebird import create_cursor, execute
database_cursor = create_cursor(dsn="some/database", user="someuser", password="somepassword")
result = execute(database_cursor, fetch="*")
Vs的:
class Firebird(object):
cursor = None
def __init__(self, dsn, user, password):
self.dsn = dsn
self.user = user
self.password = password
def create_cursor(self):
connection = kinterbasedb.connect(dsn=self.dsn,
user=self.user,
password=self.password)
self.cursor = connection.cursor()
def execute(self, query, fetch):
self.cursor.execute(query)
if fetch == "*":
return self.cursor.fetchall()
return self.cursor.fetchone()
然后
from firebird import Firebird
database = Firebird(dsn="some/database", user="someuser", password="somepassword")
database.create_cursor()
result_from_query = database.execute(query="SOME QUERY", fetch="*")
我如何在这两种实现之间做出选择?我更像是一个有实力的人,我喜欢使用这个范例,但我担心影响表现。
感谢。