工廠方法:構(gòu)建創(chuàng)建者類的繼承等級(jí)
<?php
//表格接口
interface chart
{
public function display();
}
// 折線類
class LineChart implements chart
{
public function display()
{
echo "折線圖";
}
}
//餅狀類
class PieChart implements chart
{
public function display()
{
echo "餅狀圖";
}
}
//工廠
class cf
{
public static function getchart($type)
{
switch ($type) {
case 'pie': {
return new PieChart();
}
case'Line': {
return new LineChart();
}
default: {
return null;
}
}
}
}
//使用
$chart = cf::getchart('pie');
$chart->display();
結(jié)果可得:
餅狀圖
解決了 當(dāng)代碼關(guān)注于抽象類型時(shí)如何創(chuàng)建對(duì)象實(shí)例的問(wèn)題