php设计模式的作用是什么意思,php设计模式工厂模式有什么作用?
我們給大家介紹了php工廠模式的好處,工廠模式的含義,以及工廠模式的三種情況,那么我們今天繼續(xù)給大家介紹php工廠模式的作用是什么!
工廠模式分為三種:簡單工廠、工廠方法、抽象工廠 ,三種工廠的區(qū)別是,抽象工廠由多條產(chǎn)品線,而工廠方法只有一條產(chǎn)品線,是抽象工廠的簡化。而工廠方法和簡單工廠相對,大家初看起來好像工廠方法增加了許多代碼但是實現(xiàn)的功能和簡單工廠一樣。但本質(zhì)是,簡單工廠并未嚴(yán)格遵循設(shè)計模式的開閉原則,當(dāng)需要增加新產(chǎn)品時也需要修改工廠代碼。但是工廠方法則嚴(yán)格遵守開閉原則,模式只負(fù)責(zé)抽象工廠接口,具體工廠交給客戶去擴展。在分工時,核心工程師負(fù)責(zé)抽象工廠和抽象產(chǎn)品的定義,業(yè)務(wù)工程師負(fù)責(zé)具體工廠和具體產(chǎn)品的實現(xiàn)。只要抽象層設(shè)計的好,框架就是非常穩(wěn)定的。
簡單工廠
優(yōu)點:產(chǎn)品使用者不需要關(guān)心產(chǎn)品類的創(chuàng)建過程,與具體產(chǎn)品的實現(xiàn)類達到解耦的效果;
缺點:違背"開放--封閉"原則(OCP),因為新增一個產(chǎn)品類的時候,需要修改原先的工廠方法;
適用場合:當(dāng)工廠類負(fù)責(zé)創(chuàng)建的對象比較少的時候;
實現(xiàn)方法:定義一個簡單共產(chǎn)類,并定義一個靜態(tài)生產(chǎn)方法,根據(jù)傳進來的type參數(shù)生成對應(yīng)的具體父親類
具體代碼如下<?php //抽象產(chǎn)品interface Person {
public function getName(); }//具體產(chǎn)品實現(xiàn)class Teacher implements Person {
public function getName() {
return "老師n";
}}class Student implements Person {
public function getName() {
return "學(xué)生n";
}}//簡單工廠class SimpleFactory {
public static function getPerson($type) {
$person = null;
if ($type == 'teacher') {
$person = new Teacher();
} elseif ($type == 'student') {
$person = new Student();
}
return $person;
}}//簡單工廠調(diào)用class SimpleClient {
function main() {
// 如果不用工廠模式,則需要提前指定具體類
// $person = new Teacher();
// echo $person->getName();
// $person = new Student();
// echo $person->getName();
// 用工廠模式,則不需要知道對象由什么類產(chǎn)生,交給工廠去決定
$person = SimpleFactory::getPerson('teacher');
echo $person->getName();
$person = SimpleFactory::getPerson('student');
echo $person->getName();
}}
總結(jié):
通過本文的學(xué)習(xí)相信大家對php工廠模式的作用有了一個新的概念,希望對你的工作有所幫助!~
相關(guān)推薦:
總結(jié)
以上是生活随笔為你收集整理的php设计模式的作用是什么意思,php设计模式工厂模式有什么作用?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三星Galaxy A系或用上折叠屏:主打
- 下一篇: 怎样在PropertySheet中添加按