사람은 사전에 php.Thanks의 주요 장점 및 상속/멀티 레벨 상속의 단점이 무엇인지 말해 줄 수 :장점과 PHP에서 상속의 단점
답변
장점 : -
하나 상속의 주요 장점 중 하나는 여러 하위 클래스간에 공통 코드를 공유하여 응용 프로그램의 중복 코드 양을 최소화하는 것입니다. 동일한 코드가 두 개의 관련 클래스에 존재하는 경우 계층 구조는 일반적으로 공통 코드를 상호 수퍼 클래스로 이동하도록 리팩터링 될 수 있습니다. 이것은 또한 코드와 더 작고 단순한 컴파일 단위의 더 나은 조직을 만들어내는 경향이 있습니다.
상속을 사용하면 공통 수퍼 클래스에서 상속 한 클래스를 서로 바꾸어 사용할 수 있으므로 응용 프로그램 코드의 변경이보다 유연 해집니다. 파생 클래스 데이터 숨어의 비즈니스 로직에 따라 기본 클래스의 논리를 확장 - 같은 확장 성을 다시 작성하지 않고 기본 클래스의 public 메소드를 사용하는 시설 - 메소드의 반환 형식은
재사용은 슈퍼 클래스 인 경우 - 기본 클래스는 파생 클래스에 의해 변경 될 수 없도록 일부 데이터를 비공개로 유지할 수 있습니다.
재정의 - 상속을 통해 기본 클래스의 메서드를 재정의 할 수 있으므로 기본 클래스 메서드의 의미있는 구현 파생 클래스에서 설계 될 수 있습니다.
단점 : - 상속의 주요 단점
하나는 오버로드 된 클래스의 모든 단계를 통해 이동하도록 프로그램을 걸리는 시간이 증가/노력입니다. 주어진 클래스가 그 위에 추상화 수준이 10 개 있다면, 기본적으로 각 클래스에 정의 된 함수를 실행하기 위해 10 번의 점프가 수행됩니다.
상속을 사용하는 데있어서의 주요 단점은 두 클래스 (기본 클래스와 상속 된 클래스) 단단히 결합. 이것은 서로 독립적으로 사용할 수 없음을 의미합니다.
또한 유지 보수 중에 새로운 기능을 추가 할 때 기본 클래스와 파생 클래스를 모두 변경해야합니다. 메소드 서명이 변경되면 두 경우 모두 영향을받습니다 (상속 & 구성)
메소드가 "수퍼 클래스"또는 집계에서 삭제 된 경우, 사용시 재계약해야합니다 그 방법은. 우리 프로그램이 여전히 컴파일 될 것이기 때문에 상황이 조금 복잡해질 수 있지만 서브 클래스의 메소드는 더 이상 수퍼 클래스 메소드를 오버라이드하지 않습니다. 이러한 방법은 독자적인 방법이 될 것입니다.
이 유형의 질문에 적합한 사이트인지는 확실하지만 괜찮습니다.
다른 모든 클래스가 확장하는 기본 클래스 Base
이 있다고 가정 해 보겠습니다. 기본 클래스에서는 다른 모든 클래스에서 사용할 수있는 항목을 정의 할 수 있습니다 (예 : mysqli에 대한 연결이므로 모든 클래스는 $this->mysqli
을 사용할 수 있으며 선언 할 필요가 없습니다.
전자 상거래 CMS를 만들었는데, 여기에서이 방법을 사용합니다.또한 getLink()
이라는 메서드를 정의하여 메서드가 getUrl()
및 getTitle()
인지 확인합니다. 이러한 메서드는 모든 자식 클래스 (내 CMS Product
, Category
...)에서 정의됩니다. Product
클래스를 사용하고, getUrl()
및 getTitle()
메서드도 있지만 Product
이 확장되는 getLink()
메서드는 Base
에 있습니다. 거의 모든 곳에서 getLink()
메서드를 사용하므로 모든 클래스에 쓰지 않으려면 Base
에 쓰고 사용할 수 있습니다.
내 CMS의 다른 예 : Base
구문에서 이름이 global_update
인 입력이 제출되었는지 확인합니다. $this->table
과 $this->id
이 정의되었는지 확인하고, 그렇다면 데이터로 데이터베이스를 업데이트합니다. 그렇지 않으면 모든 업데이트 작업에 대한 처리기를 정의해야합니다. 이 방법으로 모든 클래스에 대해 하나의 전역을 가지며 더 복잡한 형식에 대해서만 자체 처리기를 작성합니다.
나는 이해할 수 있기를 바랍니다. 그렇지 않다면 의견을 말하고 질문하십시오.
- 1. CAS 프로그래밍의 장점과 단점
- 2. 신경망의 장점과 단점
- 3. 여러 루프가있는 장점과 단점
- 4. 웹 서비스의 장점과 단점
- 5. gwt + grail .. 장점과 단점
- 6. Phonegap의 장점과 단점
- 7. CodeSmith의 장점과 단점
- 8. DFC와 DFS의 장점과 단점?
- 9. appium의 장점과 단점
- 10. xml.dom과 xml.dom.minidom의 장점과 단점
- 11. WCF를 통한 Axis2의 장점과 단점
- 12. NemoJs 대 NightWatchJS? 장점과 단점
- 13. 파이썬 : _mysql과 MySQLdb의 장점과 단점?
- 14. 장점과 단점 ASP.NET 로그인 컨트롤?
- 15. 다중 값 데이터베이스의 장점과 단점
- 16. Java EE와 서블릿의 장점과 단점
- 17. 체인 가능한 방법의 장점과 단점?
- 18. 장점과 단점 셀러리 대 RQ
- 19. Qt에서 PostgreSQL과 MySQL의 장점과 단점?
- 20. 어노테이션 vs XML, 장점과 단점
- 21. 2d 그래픽의 장점과 단점 WPF의 2d 이미지보다
- 22. Socket.io 모듈과 Node.js 대 XMPP - 장점과 단점
- 23. 컨트롤에 DoubleBuffer를 사용할 때의 장점과 단점
- 24. 컨테이너 관리 EJB를 사용할 때의 장점과 단점
- 25. 엔터프라이즈 라이브러리를 사용할 때의 장점과 단점
- 26. MySQL 아카이브 스토리지 엔진의 장점과 단점?
- 27. Ruby on Rails 다형성 관계의 장점과 단점
- 28. 장점과 단점 : JetBrains의 IntelliJ에/숭고한 텍스트
- 29. 웹 서비스 대 DLL; 장점과 단점?
- 30. CppUnit - xUnit 기반 디자인의 장점과 단점?
http://php.net/manual/en/language.oop5.inheritance.php – user3647254
내 대답을 왜곡시키는 이유는 무엇입니까? – Priyank
당신의 대답이나 질문. (나는 당신의 대답을 downvoted하지 않았다) – user3647254