> 백엔드 개발 > PHP 튜토리얼 > (7) 객체지향 설계 원칙 3

(7) 객체지향 설계 원칙 3

WBOY
풀어 주다: 2016-07-30 13:32:00
원래의
952명이 탐색했습니다.

하나. 개방형 및 폐쇄형 원칙:
기본 아이디어는 다음과 같습니다.
1. 개방형: 모듈의 동작은 개방적이고 확장을 지원하며 변경이 어렵지 않아야 합니다.
2.닫기: 모듈의 기능을 확장할 때 원래 프로그램 모듈에 대규모로 영향을 주거나 영향을 주어서는 안 됩니다.

2. 예:

<?php
interface process{
    public function process();
}

//播放器的编码
class playerEncode implements process{
    public function process(){
        echo "encode\r\n";
    }
}

class playerOutput implements process{
    public function process(){
        echo "output\r\n";
    }
}

//调度管理器
class playProcess{
    private $message = null;
    public function __construct(){

    }
    public function callBack(event $event){
        $this->message= $event->click();
        if ($this->message instanceof process){
            $this->message->process();
        }
    }
}

//播放器的事件处理
class mp4{
    public function work(){
        $playProcess = new playProcess();
        $playProcess->callBack(new event('encode'));
        $playProcess->callBack(new event('output'));
    }
}

//事件处理类
class event{
    private $m;

    public function __construct($me){
        $this->m = $me;
    }

    public function click(){
        switch($this->m){
            case 'encode':
                return new playerEncode();
                break;
            case 'output':
                return new playerOutput();
                break;
        }
    }
}

$mp4 = new mp4();
$mp4->work();
로그인 후 복사
3. 기타:
1. "추상화"와 "캡슐화" 개념을 디자인에 충분히 적용합니다.
a. "가변 요소"를 찾아 캡슐화합니다.
b. "동일한" 변수 요소는 "동일한" 개체로 캡슐화되어야 합니다.
2. 시스템 기능 프로그래밍 구현에 인터페이스 지향 프로그래밍을 적용합니다.
a. 요구 사항이 변경되면 변경 사항에 맞게 새로운 수업이 제공될 수 있습니다.
b. 인터페이스 지향에서는 인터페이스 유형으로 선언할 인터페이스와 객체를 구현하기 위한 기능적 클래스가 필요합니다.

저작권 안내: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.

이상 내용의 측면을 포함하여 (7) 객체지향 디자인의 세 번째 원칙을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿