前言:若小编理解不对请评论区多多指教,另文明交流!
php八大设计模式之工厂模式
工厂模式:
什么叫做工厂,举个例子郑州富士康,是专门生产苹果手机的,但是这个工厂只加工iphoneX一个机型吗?不是的,这个工厂可能会建立一个模型,例如写一个方法,就是计算手机的周长的方法。
加工各机型的小部门则都使用这个方法来计算iphone的周长,这就是一个工厂模式了,工厂提供的是一个统一的运算方法,只要你想计算周长,那么就要用到这个工厂类提供的计算周长的方法。
接下来贴代码让你更加了解其中的意义:
<?php
//富士康这个大工厂类 提供了一个员工计算周长的方法
abstract class iphonePer{
abstract public function getPerimter($width,$height);
}
//iphone周长计算
class iphone8 extends iphonePer{
public function getPerimter($width,$height){
return $width*2+$height*2;
}
}
//iphoneX周长计算
class iphoneX extends iphonePer{
public function getPerimter($width,$height){
return $width*2+$height*2;
}
}
//iphone8p周长计算
class iphoneX extends iphonePer{
public function getPerimter($width,$height){
return $width*2+$height*2;
}
}
//接下来让程序员可以进行实例化操作
//一般可以用switch方法
class shilihua{
public static function wayToPer($type){
switch($type){
case ''iphone8":
return new iphone8 ();
break;
case ''iphoneX":
return new iphoneX ();
break;
case ''iphone8p":
return new iphone8p ();
break;
}
}
}
$iphone=shilihua:: wayToPer('8');
$value=$iphone->getPerimter(400,200);
echo $value;
?>