首頁 後端開發 php教程 (七)物件導向的設計原則之三

(七)物件導向的設計原則之三

Jul 30, 2016 pm 01:32 PM
function nbsp process public

一. 開放與封閉原則:
其基本的想法是:
1.Open:模組的行為必須是開放的、支持擴展的而不是難於改變的。
2.Closed:在對模組的功能進行擴展時,不應該影響或大規模地影響原有的程式模組。

二.例:

<?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();
登入後複製
三.其它:
1.    在設計上充分應用「抽象」與「封裝」的想法。
a.    找到「變動因素」將之封裝。
b.    「同樣」的變動因素應封裝在「同一個」物件中。
2.    在系統功能程式實現上應用介面導向的程式設計。
a.    當需求改變時可提供新類別以適應變化。
b.    面向介面要求功能類別實作接口,物件聲明為介面類型。

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。

以上就介紹了(七)物件導向的設計原則之三,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門工具標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

解決方法:您的組織要求您更改 PIN 碼 解決方法:您的組織要求您更改 PIN 碼 Oct 04, 2023 pm 05:45 PM

解決方法:您的組織要求您更改 PIN 碼

Windows 11 上調整視窗邊框設定的方法:變更顏色和大小 Windows 11 上調整視窗邊框設定的方法:變更顏色和大小 Sep 22, 2023 am 11:37 AM

Windows 11 上調整視窗邊框設定的方法:變更顏色和大小

Windows 11 上啟用或停用工作列縮圖預覽的方法 Windows 11 上啟用或停用工作列縮圖預覽的方法 Sep 15, 2023 pm 03:57 PM

Windows 11 上啟用或停用工作列縮圖預覽的方法

如何在 Windows 11 上變更標題列顏色? 如何在 Windows 11 上變更標題列顏色? Sep 14, 2023 pm 03:33 PM

如何在 Windows 11 上變更標題列顏色?

OOBELANGUAGE錯誤Windows 11 / 10修復中出現問題的問題 OOBELANGUAGE錯誤Windows 11 / 10修復中出現問題的問題 Jul 16, 2023 pm 03:29 PM

OOBELANGUAGE錯誤Windows 11 / 10修復中出現問題的問題

Windows 11 上的顯示縮放比例調整指南 Windows 11 上的顯示縮放比例調整指南 Sep 19, 2023 pm 06:45 PM

Windows 11 上的顯示縮放比例調整指南

10種在 Windows 11 上調整亮度的方法 10種在 Windows 11 上調整亮度的方法 Dec 18, 2023 pm 02:21 PM

10種在 Windows 11 上調整亮度的方法

如何在Safari中關閉iPhone的隱私瀏覽身份驗證? 如何在Safari中關閉iPhone的隱私瀏覽身份驗證? Nov 29, 2023 pm 11:21 PM

如何在Safari中關閉iPhone的隱私瀏覽身份驗證?

See all articles