Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 这是一种设计模式吗?具有多个方法的类,用于从不同的输入格式创建不同的对象_Oop_Design Patterns - Fatal编程技术网

Oop 这是一种设计模式吗?具有多个方法的类,用于从不同的输入格式创建不同的对象

Oop 这是一种设计模式吗?具有多个方法的类,用于从不同的输入格式创建不同的对象,oop,design-patterns,Oop,Design Patterns,以下是已知的设计模式吗 我得到了一个有多种方法的类,可以从不同的输入格式创建不同的对象 E.g. Apologise for the pseudocode // Definition CreatorClass() { func createCat(input -> array) -> Cat{ Cat aCat = Cat() //...initialisation from array return aCat; } func create

以下是已知的设计模式吗

我得到了一个有多种方法的类,可以从不同的输入格式创建不同的对象

E.g. Apologise for the pseudocode

// Definition 

CreatorClass() {
  func createCat(input -> array) -> Cat{
    Cat aCat = Cat()
    //...initialisation from array
    return aCat;
  }

  func createCat(input -> containerClass){
    Cat aCat = Cat()
    //...initialisation from containerClass
    return aCat;
  }

  func createCat(input -> dictionary){
    Cat aCat = Cat()
    //...initialisation from dictionary
    return aCat;
  }

  func createDog(input -> dictionary){
    Dog aDog = Dog()
    //...initialisation from dictionary 
    return aDog;
  }
}

// Usage
Creator aCreator = Creator()
Cat aCat = aCreator.createCat(array)

是的,它被称为a。

在我看来像工厂模式。我还没有完全阅读它,虽然它看起来像一个工厂方法,但我想这个问题不应该出现在这里:谢谢!我见过工厂设计模式的实现,使用协议/接口代替,并在类中实现creator方法。。这是一种不同的设计模式吗?我有点困惑,例如,这是同一模式的变体。