工厂类作用: 实例化对象
优点: 为系统提供灵活的动态扩展机制, 维护便利
工厂模式是工厂类不再负责所有对象的创建 , 而是将具体创建的工作交给的子类去做 , 成为一个抽象的工厂角色 , 不仅负责给出具体工厂类必须实现的接口 , 而不接触一个产品类应当被实例化的细节
<?php
/*
Create By 2022/1/16 - 20:17 - Delimma
To overcome difficulties!
*/
interface Skill{
function family();
function buy();
}
// 人族
class Person implements Skill {
function family() {
echo "人族辛辛苦苦的干活 <br />";
}
function buy() {
echo "人族在购买物品 <br />";
}
}
// 精灵族
class Spirit implements Skill {
function family() {
echo "精灵族辛辛苦苦的干活 <br />";
}
function buy() {
echo "精灵族在购买物品 <br />";
}
}
// 工厂模式
class Factory{
static function createHero($type){
switch ($type){
case '人族' : return new Person(); break;
case '精灵族' : return new Spirit(); break;
}
}
}
$person = Factory::createHero('人族');
$spirit = Factory::createHero('精灵族');
$person->family();
$spirit->buy();