日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

php设计之初用于什么,PHP设计模式(七)之门面模式

發(fā)布時(shí)間:2025/3/12 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php设计之初用于什么,PHP设计模式(七)之门面模式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、什么是外觀模式(Facade Pattern)

定義:外觀模式又稱門面模式,提供一個(gè)統(tǒng)一的接口,用來訪問子系統(tǒng)中的一群接口。

外部與子系統(tǒng)之間的通信采用門面(Facade)對(duì)象來完成。

【舉例】比如麥當(dāng)勞套餐,套餐包含雞肉卷、漢堡包、可樂等N個(gè)單個(gè)食物(這就是子系統(tǒng)),而套餐就是門面對(duì)象。當(dāng)我們?nèi)c(diǎn)一個(gè)套餐時(shí),套餐內(nèi)的食物(子系統(tǒng))不會(huì)一個(gè)一個(gè)給你送來,而是等套餐內(nèi)所有食物做好之后一起送給你。有沒有發(fā)現(xiàn),這與工廠模式有些相像。

二、為什么使用外面模式

主要用來簡(jiǎn)化操作。

三、外觀模式結(jié)構(gòu)

外觀角色(Facade): 為子系統(tǒng)封裝統(tǒng)一的對(duì)外接口,如同子系統(tǒng)的一個(gè)門面。這個(gè)類一般不負(fù)責(zé)具體的業(yè)務(wù)邏輯,只是一個(gè)委托類,具體的業(yè)務(wù)邏輯由子系統(tǒng)完成。

子系統(tǒng)(SubSystem): 由多個(gè)類組成的具有某一特定功能的子系統(tǒng)。可以是第三方庫,也可以是自己的基礎(chǔ)庫,還可能是一個(gè)子服務(wù),為整個(gè)系統(tǒng)提供特定的功能或服務(wù)。

四、實(shí)例解釋

繼續(xù)一貫以來的餐飲。廚房電器擺放位置太亂,嚴(yán)重影響了廚房的整潔,老板決定整改整個(gè)電路系統(tǒng)。廚房電器太多,一個(gè)一個(gè)關(guān)掉電源太過于浪費(fèi)時(shí)間,有沒有總控?對(duì),總控。于是老板直接關(guān)掉了整個(gè)廚房的電源系統(tǒng),這下就方便多了。實(shí)際常見的有屋子里的空氣開關(guān)。

五、代碼實(shí)現(xiàn)

Freezer.php<?php

/**

*?Freezer?冷藏柜開關(guān)?(子系統(tǒng))

*

*/

class?Freezer

{

//?冷藏柜電源?開

public?function?open()

{

echo?'我是冷藏柜,我接通電源了,開始冷藏工作~~';

}

//?冷藏柜電源?關(guān)

public?function?close()

{

echo?'我是冷藏柜,我失去電源了,冷藏工作結(jié)束~~';

}

}

SteamRiceMachineSwitch.php<?php

/**

*?SteamRiceMachineSwitch?蒸飯車電源開關(guān)控制器?(子系統(tǒng))

*

*/

class?SteamRiceMachineSwitch

{

//?蒸飯車電源?開

public?function?turnOn()

{

echo?'我是蒸飯車,我接通電源了,我將為你蒸飯~';

}

//?蒸飯車電源?關(guān)

public?function?turnOff()

{

echo?'我是蒸飯車,我接通關(guān)閉了,我不再為你蒸飯,你自己想辦法去吧~';

}

}

TurnOffFacade.php<?php

/**

*?TurnOffFacade?電源總開關(guān)門面

*/

class?TurnOffFacade

{

protected?$freezer;

protected?$steamRiceMachineSwitch;

public?function?__construct()

{

$this->freezer?=?new?Freezer();

$this->steamRiceMachineSwitch?=?new?SteamRiceMachineSwitch();

}

//?總開

public?function?on()

{

$this->freezer->open();

$this->steamRiceMachineSwitch->turnOn();

}

//?總關(guān)

public?function?off()

{

$this->freezer->close();

$this->steamRiceMachineSwitch->turnOff();

}

}

index.php<?php

require_once?'./Freezer.php';

require_once?'./SteamRiceMachineSwitch.php';

require_once?'./TurnOffFacade.php';

$facade?=?new?TurnOffFacade();

$facade->on();

$facade->off();

我是夕陽何處尋,期待和優(yōu)秀的你一起同行!

夕陽何處尋

2020年01月16日

轉(zhuǎn)載:感謝您對(duì)自如初博客網(wǎng)站的認(rèn)可,所有文章均屬原創(chuàng)文章,技術(shù)類文章轉(zhuǎn)載請(qǐng)注明出處,“自如初博客”;文學(xué)類文章請(qǐng)帶文本鏈接地址,否則視為侵權(quán)!

很贊哦!(6)

總結(jié)

以上是生活随笔為你收集整理的php设计之初用于什么,PHP设计模式(七)之门面模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。