工厂模式:工厂类确定由参数创建的生产类。
工厂类:专门用于创建其他对象的方法类,即按需分配,选择传入参数,并返回特定的类。
功能:由对象创建的封装,简化对象的创建操作,也就是调用工厂类的方法获取所需的类。
补充:
1。主要角色:抽象产品(产品)、特定产品(具体产品)、抽象工厂角色(创建者)。
2。的优点和缺点
优点:工厂方法模型允许系统在不修改工厂角色的情况下引入心脏产品。
缺点:客户端可能需要创建一个创建者子类来创建特定的具体产品对象。
三.适用性
当一个类不知道它必须创建的对象时
当一个类希望它的子类处理出它创建的对象时
当一个类将创建对象的责任委托给多个帮助子类中的一个,并希望您帮助哪个子类是代理时,该信息本地化将发生。
复制代码代码如下所示:
< PHP
对象
MyObject类{
公共功能(__construct){ }
公共功能测试(){
return'test;
}
}
工厂
我厂{类
公共静态函数工厂(){
返回MyObject();
}
}

MyObject =我厂:厂:美元();
echo MyObject ->测试();
>


< PHP
抽象类定义和属性抽象方法
抽象类操作{
保护_numbera = 0美元;
保护_numberb = 0美元;
保护_result = 0美元;

公共功能__construct($,$){
美元-> _numbera =美元;
美元-> _numberb = $;
}

公共功能setnumber($,$){
美元-> _numbera =美元;
美元-> _numberb = $;
}

公共功能clearresult(){
美元-> _result = 0;
}

摘要保护功能getResult();
}

操作
类operationadd延伸操作{
公共职能getResult(){
这_result =美元->美元-> _numbsera +美元-> _numberb;
返回_result美元->;
}
}

类operationsub延伸操作{
公共职能getResult(){
这_result =美元->美元-> _numbera -美元-> _numberb;
返回_result美元->;
}
}
…

工厂
类operationfactory {
私有静态$ obj;

公共静态函数creationoperation($,$,$){
开关($ type){
+案:
自::obj =新operationadd美元($,$);
打破;
案例-:
自::obj =新operationsub美元($,$);
打破;
......
}
}
}

操作
$ obj = operationfactory:(creationoperation +,5,6);
echo $ obj -> getResult();
>