php中工廠模式的原理是什么

本篇文章為大家展示了php中工廠模式的原理是什么,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

做網(wǎng)站、網(wǎng)站設(shè)計(jì)過(guò)程中,需要針對(duì)客戶(hù)的行業(yè)特點(diǎn)、產(chǎn)品特性、目標(biāo)受眾和市場(chǎng)情況進(jìn)行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計(jì)方向。創(chuàng)新互聯(lián)建站還需要根據(jù)客戶(hù)的需求進(jìn)行功能模塊的開(kāi)發(fā)和設(shè)計(jì),包括內(nèi)容管理、前臺(tái)展示、用戶(hù)權(quán)限管理、數(shù)據(jù)統(tǒng)計(jì)和安全保護(hù)等功能。

1、說(shuō)明

工廠模式解決的是如何不通過(guò)new建立實(shí)例對(duì)象。

它有一些方法可以創(chuàng)建目標(biāo),而不是new。如果想改變創(chuàng)建的對(duì)象類(lèi)型,只需要改變工廠,使用這個(gè)工廠的所有代碼會(huì)自動(dòng)改變。

工廠模式通常與接口一起使用,應(yīng)用程序不需要知道這些實(shí)例化類(lèi)的具體細(xì)節(jié),只要知道工廠返回的是支持某個(gè)接口類(lèi)別的類(lèi)就可以輕松使用。

2、實(shí)例

/**
 * 抽象出一個(gè)人的接口
 * Interface Person
 */
interface Person
{
    public function showInfo();
}
 
/**
 * 一個(gè)繼承于抽象人接口的學(xué)生類(lèi)
 * Class Student
 */
class Student implements Person
{
    public function showInfo()
    {
        echo "這是一個(gè)學(xué)生 \n";
    }
}
 
/**
 * 一個(gè)繼承于抽象人接口的老師類(lèi)
 * Class Teacher
 */
class Teacher implements Person
{
    public function showInfo()
    {
        echo "這是一個(gè)老師 \n";
    }
}
 
/**
 * 人類(lèi)工廠
 * Class PersonFactory
 */
class PersonFactory
{
    public static function factory($person_type)
    {
        // 將傳入的類(lèi)型首字母大寫(xiě)
        $class_name = ucfirst($person_type);
 
        if(class_exists($class_name)){
            return new $class_name;
        }else{
            throw  new Exception("類(lèi):$class_name 不存在",1);
        }
    }
}
 
// 需要一個(gè)學(xué)生
$student = PersonFactory::factory('student');
echo $student->showInfo();
 
// 需要一個(gè)老師的時(shí)候
$teacher = PersonFactory::factory('teacher');
echo $teacher->showInfo();

上述內(nèi)容就是php中工廠模式的原理是什么,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前名稱(chēng):php中工廠模式的原理是什么
URL網(wǎng)址:http://bm7419.com/article46/pppjeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、云服務(wù)器、用戶(hù)體驗(yàn)、做網(wǎng)站、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)