나는 꽤 많은 형식의 공장을 사용하는 독점 프로젝트에서 작업합니다. 다행히 클래스의 이름을 인스턴스화하지 않는 것이 대부분이지만 인스턴스화하는 데 new self()
또는 new static()
이 사용되는지 여부는 개발자에 따라 다릅니다.새로운 자체 또는 새 정적을 사용해야합니까?
나는 차이점을 알고 있지만 늦은 정적 바인딩이 기술적으로 필요하지 않을 때 "올바른"방법이 무엇인지에 대한 합의가 있다면 궁금합니다. 예를 들어, new static()
은 거의 확실하게 서브 클래 싱되지 않는 서비스 클래스에서 자주 발견됩니다. 분명히 추상 클래스에서는 중요하지만, 내 선호는 서브 클래스를 기대하지 않는 곳에 new self()
을 사용하는 것입니다.
는 내가 호기심이 약 해요 : 기술적 인 차이를 해결
질문
- 인가 거기 후기 정적 바인딩을 사용하면 성능이 저하됩니까?
- 하나의 관행을 채택 할 때 코드 유지 관리에 영향이 있습니까? 예 :
new self()
을 사용하여 클래스를 하위 클래스로 만들면 이러한 모든 사례를 재정의하거나 변경해야하지만 내 생성자가 변경되면 나쁜 것은 아닙니다. - 문서화 된 모범 사례가 있습니까? 우리는 PSR-2를 적어도 흡기 적으로 사용하지만,이 부분을 다루지는 않는다고 생각합니다. 그은을 돌려 푸 정적 방법) ((팩토리 메소드)를 만듭니다 선언하면 의미
파생 클래스의 인스턴스가 발생합니다 새 정적을 반환 :
질문 1 (실적이 좋음)에 대해 실제 수업을 1M 번이나 비슷하게 벤치마킹 해주세요. –