2017-11-24 7 views
0

PHP에서 지문 알고리즘을 구현하는 github에 프로젝트를 만들었습니다. 내가 가지고있는 아이디어는 parent basic fingerprint implementation이고 그 클래스는 City, Company, 제목 및 거리와 같은 다른보다 구체적인 클래스에 의해 확장되어야합니다. 이러한 클래스는 모두 특정 동의어 및 삭제 (예 : 불용어)하지만 기능은 기본 클래스와 동일합니다. 이 모든 것이 이제까지 괜찮아 보입니다.다중 상속을위한 더 나은 아키텍처

이제 두 번째 프로젝트도 있는데, github에 Elasticsearch 인덱스의 분석기, 필터 및 동의어를 작성하고 있습니다. City, Company, 제목 및 거리와 같은 다른보다 구체적인 클래스에 의해 확장되어야하는 parent basic class도 있습니다. 여기에 문제가 있습니다. 각각의 특정 클래스는 이전 프로젝트에서 정의한 동의어를 다시 사용하기를 원합니다.

github에서 볼 수있는 버전은 특성이 그렇게 작동하지 않기 때문에 (속성 우선 적용이 허용되지 않음)하지만 공통된 특성을 갖고 있으며이를 공유하기위한 아이디어입니다. 프로젝트.


편집 : 프로젝트의 현재 상태와 일치하도록 링크가 업데이트되었습니다. 형질을 완전히 제거했습니다. 의존성 주입을 사용하여 두 프로젝트에 대한 몇 가지 테스트를 추가했습니다.

답변

1

이 문제는 필요하지 않은 상속을 사용하려는 강한 동기에서 비롯됩니다. 그 대신 BaseFPCity, Company, TitleStreet 클래스의 종속성으로 주입되어야합니다.

그러면 별도의 작곡가 패키지로 추출하여 다시 사용할 수 있었을 것입니다. 상속을 통해

호의 조성물은

+0

예, 동의합니다. 사실,이 주석을 읽기 전에 의존성 주입을 사용하기 위해 리팩터링을했습니다. 업데이트에 대해 친절하게 살펴 보시겠습니까? 또한 올바른 사용법을 평가하기위한 몇 가지 기본 테스트를 추가했습니다. – Vladan