>source

다음 동작을 구현하는 가장 좋은 방법은 무엇입니까? 함수가 나타내는 인터페이스가 있습니다.ANS= my_interface (args)이 기능을 몇 가지 구현하고 매개 변수를 설정하여 구현 중 하나를 선택할 수있는 권한을 부여하고자합니다.

명백한 솔루션은 각 구현을 동일한 인터페이스와 함께 함수로 만드는 것입니다.my_interface.매개 변수를 처리하고 값을 호출합니다. 확장하고 싶다면 엔진의 새로운 구현으로 새로운 기능을 추가해야합니다.my_interface.새 엔진의 이름을 처리합니다. 그리고 나는 여기에 적절한 인터페이스를 알고 있어야합니다. 나는 그것이 똑똑한 방식이라고 생각하지 않는다.

나는 또한이 문제에 대한 책이나 토론에 대한 링크를 촉진 할 것입니다.

최상위 수준의 함수가 아닌 추상적 인 클래스를 원하는 것처럼 들립니다. 그 외에도, 당신은 외관, 공장 또는 아마도 전략 패턴을 찾고있는 것처럼 보입니다.

OneCricketeer2021-05-06 16:59:08

내가 배울 수있는 곳이있는 곳이 있습니까? 나는이 주제에 대해 몇 권의 책을 시도했지만 너무 모호하고 이렇게 흡수됩니다. 나는 실제 예를 따르고 싶다.

freude2021-05-06 16:59:08

디자인 패턴 태그 정보 페이지에는 문헌 목록이 있습니다. 일반적인 비판은 개념이 c++와 같은 낮은 수준의 언어로 더 적합하지만 적어도 Python을 사용하는 경우에도 적어도 의미하는 바를 알아 두는 것이 좋습니다.

tripleee2021-05-06 16:59:08

그 말은 oop에서 다형성에 대한 도입을 읽기 시작할 때 묻는 질문 인 질문 인 질문 인 "동일한 API로 클래스를 구현할 수 있는지"귀하의 질문이 "귀하의 질문이 줄어들 수 있습니다. (동일한 서명을 가진 기능은 물론 너무 간단하지만 너무 간단합니다.)

tripleee2021-05-06 16:59:08

패턴 자체는 모호하지만, 이것은 리팩토링을 요구하는 것과 거의 정확히 보입니다 .Guru/design-Patterns/strategy/design-patterns/strategy/python/example

OneCricketeer2021-05-06 16:59:08
  • 이전 c++ : 오류 : 'string_view'는 'std'회원이 아닙니다.
  • 다음 three.js : 기존의 3.js 문서에 aframe을 추가합니다