이 글은 PHP에서 추상과 인터페이스의 차이점을 자세히 분석하고 소개한 글입니다. 필요한 친구들이 와서 참고하면 좋겠습니다.
1.php 인터페이스클래스: 인터페이스
사실 그 기능은 매우 간단합니다. 많은 사람들이 함께 프로젝트를 개발할 때 다른 사람이 작성한 일부 클래스를 모두 호출할 수 있습니다. 그러면 특정 기능의 구현 방법 이름을 어떻게 알 수 있습니까? 그런 다음 PHP 인터페이스 클래스가 작동합니다. 인터페이스 클래스를 정의할 때 그 안의 메소드는 다음 하위 클래스에 의해 구현되어야 합니다. 예:
코드는 다음과 같습니다.
interface Shop { public function buy($gid); public function sell($gid); public function view($gid); }
I 상점 인터페이스 클래스를 선언합니다. , buy, sale, view 세 가지 메소드가 정의되어 있으며 Inherit 이 클래스의 모든 하위 클래스는 이 세 가지 메소드를 구현해야 합니다. 하위 클래스가 이를 구현하지 않으면 작동하지 않습니다. 일하다. 사실 인터페이스 클래스는 직설적으로 말하면 클래스의 템플릿이자 클래스의 규정이다. 이 범주에 속하면 어떻게 하든 내 규정을 따라야 한다.
코드는 다음과 같습니다.
class BaseShop implements Shop { public function buy($gid) { echo('你购买了ID为 :'.$gid.'的商品'); } public function sell($gid) { echo('你卖了ID为 :'.$gid.'的商品'); } public function view($gid) { echo('你查看了ID为 :'.$gid.'的商品'); } }
생각해 보세요. 많은 사람들이 함께 작업하는 대규모 프로젝트에서는 인터페이스 클래스가 있으면 매우 편리합니다. 다른 사람에게 물어볼 필요가 없도록 함수의 메소드 이름은 무엇입니까? 물론 이것이 마음에 들면 어쩔 수 없습니다.
결론: 인터페이스 클래스는 클래스의 리더로서 방향을 지시하며 하위 클래스는 지정된 메소드를 완료해야 합니다.
2.php Abstract class : abstract
사실 추상클래스와 인터페이스 클래스는 부분적으로 비슷한데 그런 문장을 어디서 본 기억이 나네요. 추상클래스는 비슷한 부분을 추출한건데 이 문장이 웃기네요. 사실, 이는 추상 클래스에 대한 진실을 알려줍니다. 추상 클래스의 기능은 많은 클래스가 계속해서 반복적으로 작성하는 많은 메서드를 사용한다는 것을 알게 되면 "할 수 있습니다. 클래스를 다시 작성하고 각 공용 클래스를 인스턴스화하고 동일한 메소드를 호출하지 마십시오." 이것은 가능합니다. 실제로 이것이 추상 클래스가 수행하는 작업이지만 생략됩니다. 인스턴스화의 이 단계가 제거되어 호출하는 것만큼 편리합니다. 이 클래스의 메서드를 직접 사용할 수 있으며 이 메서드를 오버로드할 수도 있습니다. 예를 들면 다음과 같습니다.
코드는 다음과 같습니다.
abstract class BaseShop { public function buy($gid) { echo('你购买了ID为 :'.$gid.'的商品'); } public function sell($gid) { echo('你卖了ID为 :'.$gid.'的商品'); } public function view($gid) { echo('你查看了ID为 :'.$gid.'的商品'); } } class BallShop extends BaseShop { var $itme_id = null; public function construct() { $this->itme_id = 2314; } public function open() { $this->sell($this->itme_id); } }
다음은 예시입니다. 위와 마찬가지로 store 클래스를 정의하고 buy, Sell, view 등의 모든 부분을 추출했습니다. 추상 클래스에서 구현된 경우 이를 상속하는 하위 클래스는 자동으로 이러한 메서드를 획득하고 하위 클래스는 고유한 작업을 수행하고 코드 중복을 도입하며 재사용성을 향상시킵니다.
결론: 추상 클래스는 서비스를 제공하는 서비스입니다. 서비스가 제공되지 않아 불만이 있을 때 사용할 필요는 없습니다. , 직접 제공할 수도 있습니다. 와서 해 보세요. 추상 함수 메소드는 인터페이스와 다소 유사하며 상위 클래스에서 구현되어야 합니다. 그러나 abstract로 선언되지 않은 메소드는 하위 클래스의 공개 메소드가 되므로 구현할 필요가 없습니다. 하위 클래스에 있어요
위 내용은 PHP 추상과 인터페이스의 차이점에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

thesecrettokeepingAphp-poweredwebsiterunningsmoothlydlyUnderHeavyloadInvolvesEveralKeyStrategies : 1) ubstractOpCodeCachingWithOpCacheTecescripteExecutionTime, 2) usedatabasequeryCachingwithRedSendatabaseload, 3) LeverAgeCdnslikeCloudforforporerververforporporpin

Code는 코드가 더 명확하고 유지 관리하기 쉽기 때문에 의존성 주입 (DI)에 관심을 가져야합니다. 1) DI는 클래스를 분리하여 더 모듈 식으로 만들고, 2) 테스트 및 코드 유연성의 편의성을 향상시키고, 3) DI 컨테이너를 사용하여 복잡한 종속성을 관리하지만 성능 영향 및 순환 종속성에주의를 기울이십시오. 4) 모범 사례는 추상 인터페이스에 의존하여 느슨한 커플 링을 달성하는 것입니다.

예, PPAPPLICATIONISPOSSIBLEADESLESTION.1) INVERECINGUSINGAPCUTERODUCEDABASELOAD.2) INCODINCEDEXING, ENGICIONEQUERIES 및 CONNECTIONPOULING.3) 향상된 보드 바이어링, 플로 팅 포르코 잉을 피하는 최적화 된 APPCUTERODECEDATABASELOAD.2)

theKeyStrategiesToSINCINTIFILINTINTIFILINTINTHPPORMATIONPERFORMANCEARE : 1) USEOPCODECACHING-CCHACHETEDECUTECUTINGTIME, 2) 최적화 된 ABESINSTEMENTEMENDSTEMENTEMENDSENDSTATEMENTENDS 및 PROPERINDEXING, 3) ConfigureWebSerVERSLIKENGINXXWITHPMFORBETPERMERCORMANCES, 4)

aphpdectionenceindectioncontainerisatoolthatmanagesclassdependencies, 향상 Codemodularity, testability 및 maintainability.itactAsacentralHubForCreatingAndingDinjectingDingingDingingdecting.

대규모 응용 프로그램의 경우 SELLENCIONINGESS (DI)를 선택하십시오. ServicElocator는 소규모 프로젝트 또는 프로토 타입에 적합합니다. 1) DI는 생성자 주입을 통한 코드의 테스트 가능성과 모듈성을 향상시킵니다. 2) Servicelocator는 센터 등록을 통해 서비스를 얻습니다. 이는 편리하지만 코드 커플 링이 증가 할 수 있습니다.

phPapplicationSCanBeoptimizedForsPeedandefficiencyby : 1) ENABLEOPCACHEINPHP.INI, 2) PREPAREDSTATEMENTSWITHPDOFORDATABASEQUERIES 사용

phpeMailValidationInvoLvestHreesteps : 1) formatValidationUsingRegularexpressionsTochemailformat; 2) dnsValidationToErethedomainHasaValidMxRecord; 3) smtpvalidation, theSTHOROUGHMETHOD, theCheckSiftheCefTHECCECKSOCCONNECTERTETETETETETETWERTETWERTETWER


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.