工厂模式所谓工厂,就是将零件组装成产品的地方。建一个对象常常需要复杂的过程,所以不适合包含在一个复合对象中。创建对象可能会导致大量的重复代码,可能会需要复合对象访问不到的信息,也可能提供不了足够级别的抽象,还可能并不是复合对象概念的一部分。在面向对象程序设计中,工厂通常是一个用来创建其他对象的对象。工厂是构造方法的抽象,用来实现不同的分配方案。一般情况下,工厂模式分为三种更加细分的类型:简单工厂、工厂方法和抽象工厂。不过,在GoF的《设计模式》一书中,它将简单工厂看作是工厂方法模式的一种特例,所以工厂模式只被分成了工厂方法和抽象工厂两类。实际上,前一种分类方法更加常见。实际上,简单工厂、工厂方
抽象工厂定义:抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口无须指定它们具体的类类型:创建型适用环境:客户端(应用层)不依赖于产品类实例如何被创建、实现等细节强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于具体实现优点:具体产品在应用层代码隔离,无须关心创建细节将一个系列的产品族统一到一起创建缺点:规定了所有可能创建的产品集合,产品族中扩展新的产品困难,需要修改抽象工厂的接口。抽象工厂的产品族和产品等级结构当一个工厂可以创建出分属于不同产品等级结构的一个产品族中的所有对象时,那这个时候抽象工
简单工厂:定义:由一个工厂对象绝对创建出哪一种产品类的实例类型:创建型,但不属于GOF23种设计模式适用场景:工厂类负责创建的对象比较少客户端(应用层)只知道传入工厂类的参数对于如何创建对象(逻辑)不关心优点:只需要传入一个正确的参数,就可以获取你所需要的对象而无须知道其创建细节缺点:工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,违背开闭原则coding创建一个Video抽象类,来实现各种视频的创建。创建一个JavaVideo类继承Video抽象类创建pythonVideo类继承Video抽象类创建应用层Test类现在就是父类声明的引用指向子类JavaVideo。现在有一个问题,