为了账号安全,请及时绑定邮箱和手机立即绑定

为啥要是用工厂方法

为啥要是用工厂方法

蝴蝶不菲 2019-03-01 10:50:04
为啥需要工厂方法去获取对象,不直接new呢。
查看完整描述

5 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

看需求了,有些需求就适合工厂模式

查看完整回答
反对 回复 2019-03-01
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

工厂方法去获取对象,在要换个实例化的对象时只要改工厂类里new的一处就好了,如果不是工厂 就要每个new都要改。

查看完整回答
反对 回复 2019-03-01
?
守着一只汪

TA贡献1872条经验 获得超3个赞

个人觉得,封装复杂的对象属性配置

查看完整回答
反对 回复 2019-03-01
?
浮云间

TA贡献1829条经验 获得超4个赞

直接上一个简单工厂方法案例看一下哈,通过代码解释
补充一下,题主问题打的标签是java,以下是php代码,天下代码是一家

// 定义一个接口
interface Person 
{
    public function getWork();
}
// 实现该接口
class Teacher implements Person 
{
    public function getWork()
    {
        echo 'Teacher teaching';
    }
}

class Student implements Person 
{
    public function getWork()
    {
        echo 'Student study';
    }
}
// 此处为核心点
class Factory
{
    /*
      通过静态方法返回生成的指定类的对象
      按照我们的理解,实例化对象需要 new 类名
      如 $test = new Test;
      $test->方法名();
      再实例化一个:
      $test2 = new Test2;
      $test2->方法名();
      ......
      实例化一次就需要再new一次类
      
      而通过此处的简单工厂模式,则可以不需要知道具体的类名就可以生成对象
         
    */
    public static function getPerson($work)
    {
        return new $work;
    }
}

$res = Factory::getPerson('Teacher');
$res->getWork();
查看完整回答
反对 回复 2019-03-01
  • 5 回答
  • 0 关注
  • 377 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信