Oracle 또는 MySQL과 인터페이스 할 수있는 클래스가 있습니다. 클래스는 "Oracle"또는 "MySQL"이라는 키워드와 두 데이터베이스 유형 (인쇄 대상, 예외시 중지 여부 등)에 대한 표준 매개 변수로 초기화됩니다.클래스를 여러 클래스로 분할하는 가장 Python적인 방법
시작했을 때 필요에 따라 if Oracle do A, elif MySQL do B
을 추가하는 것이 쉬웠지만, 하나의 데이터베이스 유형에만 적용되는보다 특수화 된 코드를 추가하면 추악 해집니다. 클래스를 두 개로 분리했습니다. 하나는 Oracle 용이고 다른 하나는 MySQL 용입니다. 중복 코드를 피하기 위해 일부 공유 함수가 있습니다.
이러한 새로운 클래스를 호출하는 가장 복잡한 방법은 무엇입니까? 이 동일한 키워드를 사용하는 래퍼 함수/클래스를 만들고 올바른 클래스를 반환합니까? 이전 제네릭 클래스를 호출하는 모든 코드를 올바른 DB 관련 클래스를 호출하도록 변경합니까?
필요하다면 기꺼이 예제 코드를 모의 하겠지만, 필자는 그것이 필요하다고 생각하지 않았습니다. 어떤 도움을 주셔서 미리 감사드립니다!
좋은 조언이지만, 팩토리 클래스도 기본 클래스가 아니면 팩토리 함수를 사용할 수도 있습니다. – Marcin
팩토리 클래스를 사용하면 구성해야 할 때 유용합니다. 그렇지 않으면 너무 많은 매개 변수가있는 함수를 얻게됩니다. –