Tôi có một lớp có thể giao tiếp với Oracle hoặc MySQL. Lớp được khởi tạo với một từ khóa là "Oracle" hoặc "MySQL" và một vài tham số khác là tiêu chuẩn cho cả hai loại cơ sở dữ liệu (những gì cần in, có hoặc không dừng lại trên một ngoại lệ, vv). Thật dễ dàng để thêm if Oracle do A, elif MySQL do B
khi cần thiết khi tôi bắt đầu, nhưng khi tôi thêm mã chuyên biệt hơn chỉ áp dụng cho một loại cơ sở dữ liệu, điều này đang trở nên xấu xí. Tôi đã chia lớp thành hai, một cho Oracle và một cho MySQL, với một số chức năng được chia sẻ để tránh mã trùng lặp.Cách Pythonic nhất để xử lý chia lớp thành nhiều lớp
Cách Pythonic nhất để xử lý việc gọi các lớp mới này là gì? Tôi có tạo một hàm/lớp bao bọc sử dụng cùng từ khóa này và trả về đúng lớp không? Tôi có thay đổi tất cả mã của tôi gọi lớp chung cũ để gọi đúng lớp DB cụ thể không?
Tôi sẽ sẵn sàng thử một số mã mẫu nếu cần, nhưng tôi không nghĩ là cần thiết. Cảm ơn trước sự giúp đỡ nào!
Lời khuyên tốt, nhưng trừ khi lớp nhà máy của bạn cũng là lớp cơ sở, bạn cũng có thể sử dụng chức năng của nhà máy. – Marcin
Sử dụng một lớp nhà máy rất hữu ích khi bạn cần cấu hình nó. Nếu không, bạn sẽ nhận được một hàm với quá nhiều tham số. –