>백엔드 개발 >PHP 튜토리얼 >PHP 연구 노트 - 객체지향의 핵심 개념

PHP 연구 노트 - 객체지향의 핵심 개념

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-07-29 08:57:11861검색
상속과 다형성은 모두 클래스를 재사용합니다. 그 중 하나는 클래스 수준 재사용이고, 다른 하나는 메서드 수준 재사용입니다. 클래스의 결합과 상속. 낮은 결합, 분리, 긴밀한 결합. 상속 문제:
1. 상속은 캡슐화를 파괴합니다.
2. 상속은 긴밀하게 결합되어 있습니다.
3. 상속과 확장이 복잡합니다.
4. 상속을 부적절하게 사용하면 실제 논리를 위반할 수 있습니다.
결합된 객체를 생성할 때 결합은 로컬 객체를 하나씩 생성해야 하는데, 이 경우 어느 정도 코드가 추가됩니다. 하위 클래스에는 자동으로 상위 클래스의 메서드가 있기 때문에 이 단계가 필요하지 않습니다. . 상속 사용 방법:
1. 상속 트리의 추상화 계층은 일반적으로 3개 이하로 비교적 안정적이어야 합니다.
2. 상속되도록 특별히 설계되지 않은 클래스의 경우 상속이 금지됩니다. 즉, 최종 수정자가 사용됩니다. final 수정자를 사용하면 중요한 메소드를 불법적으로 덮어쓰는 것을 방지할 수 있을 뿐만 아니라 편집자에게 최적화를 찾을 수 있는 기회도 제공합니다.
3. 코드 재사용성을 높이기 위해 조합 관계 사용을 우선시합니다.
4. 하위 클래스는 단순한 상위 클래스의 역할이 아닌 특별한 유형입니다.
5. 상위 클래스의 기능을 재정의하거나 무효화하는 대신 하위 클래스 확장.
6. 기본 코드는 주로 조합을 사용하고, 최상위/비즈니스 레이어 코드는 대부분 상속을 사용합니다. 하위 수준에서 조합을 사용하면 효율성이 향상되고 개체가 부풀어오르는 것을 방지할 수 있습니다. 최상위 코드에 상속을 사용하면 유연성이 향상되고 비즈니스 사용이 더욱 편리해집니다.
다중 상속 메커니즘: 특성. 다형성:
의미: 동일한 클래스의 객체가 동일한 메시지를 받으면 다른 결과를 얻게 됩니다. 그리고 그 소식은 예측할 수 없었습니다.
오버로딩은 객체 지향의 것이 아니며 다형성과 동일한 개념도 아닙니다.
다형성은 여러 상태나 단계를 통해 동일한 객체를 설명하는 프로그래밍 방법입니다. 그 진정한 의미는 실제 개발에서는 인터페이스나 기본 클래스의 프로그래밍에만 신경 쓰면 되고 객체가 속한 특정 클래스에는 신경 쓸 필요가 없다는 것입니다.
다형성 구현:
1. 다형성은 런타임 시 동일한 유형의 객체를 구체화하는 것을 의미합니다.
2. PHP 언어는 약한 유형이므로 다형성을 더 쉽고 유연하게 구현할 수 있습니다.
3. 유형 변환은 다형성이 아닙니다.
4. PHP에서는 부모 클래스와 하위 클래스를 "의붓아버지"와 "의붓자식" 관계로 간주하지만, 혈연관계는 없습니다. 따라서 하위 클래스를 상위 클래스로 변환할 수 없으므로 가장 일반적인 다형성 기능을 잃게 됩니다.
5. 다형성의 본질은 if...else이지만 구현 수준이 다릅니다.
인터페이스는 "사물"의 기능을 설명하는 일련의 사양을 정의하며, "사물"이 실제로 사용 가능하려면 이러한 기본 기능을 구현해야 합니다. 추상 클래스 및 인터페이스. 어떤 의미에서 특성과 인터페이스는 "다중 상속"의 위장된 구현입니다. 인터페이스의 여러 개념:
1. 인터페이스는 사양과 계약으로 존재합니다. 사양으로서 인터페이스는 계약으로서 가용성을 보장해야 하며 인터페이스는 제어 가능성을 보장해야 합니다.
2. 인터페이스는 단지 선언일 뿐입니다. 인터페이스 키워드를 사용하면 구현해야 합니다. 이는 프로그래머(외부 인터페이스) 또는 시스템(내부 인터페이스)에 의해 구현될 수 있습니다. 인터페이스 자체는 아무것도 하지 않지만, 무엇을 할 수 있는지 알려줄 수 있습니다.
3. PHP의 인터페이스에는 두 가지 단점이 있습니다. 하나는 계약 제한이 없다는 것이고, 다른 하나는 내부 인터페이스가 충분하지 않다는 것입니다.
성찰:
객체 지향 프로그래밍에서는 객체에 성찰 능력이 부여되며, 이러한 성찰 과정이 성찰입니다.
반성, 직관적 이해는 도착지를 기준으로 출발지와 출처를 찾는 것입니다.
리플렉션은 PHP 실행 상태에서 PHP 프로그램 분석을 확장하여 주석을 포함하여 클래스, 메소드, 속성, 매개변수 등에 대한 자세한 정보를 내보내거나 추출하는 것을 의미합니다. 동적으로 정보를 얻고 객체 메소드를 동적으로 호출하는 기능을 리플렉션 API라고 합니다.

반영의 역할: 문서 생성에 사용할 수 있습니다. (후크?)

플러그인 자동 로드, 문서 자동 생성, PHP 언어 확장에도 사용할 수 있습니다

PHP에는 토큰 기능이 있으며 이 메커니즘을 통해 일부 반사 기능을 달성할 수 있습니다. 반사를 사용하는 이유는 무엇입니까? 성찰의 필요성은 무엇인가?

Reflection의 목적은 알 수 없는 애플리케이션을 확장하는 것입니다.


예외 및 오류 처리:
예외 및 오류의 개념 (오류)는 다릅니다.

위의 내용은 객체지향의 핵심 개념인 PHP 학습 노트를 소개하며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.