java抽象工厂模式详解 工厂方法模式与抽象工厂模式的区别?
工厂方法模式与抽象工厂模式的区别?
工厂方法模式:抽象产品类可以从多个特定产品类派生。抽象工厂类可以派生多个具体工厂类。每个特定的工厂类只能创建特定产品类的一个实例。抽象工厂模式:多个抽象产品类。每个抽象产品类可以派生多个特定的产品类。抽象工厂类可以派生多个具体工厂类。每个特定的工厂类可以创建特定产品类的多个实例。区别:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个抽象产品类。工厂方法模式的具体工厂类只能创建具体产品类的一个实例,而抽象工厂模式可以创建多个实例。
抽象工厂和工厂方法模式在应用中的不同作用?
简单工厂、工厂方法和抽象工厂都是设计模式中的创新模式。它的主要功能是帮助我们提取对象的实例化部分,优化系统架构,增强系统的可扩展性。本文对这三种模式进行了总结,并对它们之间的区别进行了理解。简单工厂模式的工厂类通常使用静态方法通过接收的不同参数返回不同的对象实例。不修改代码就不能扩展它。工厂方法工厂方法为每个产品提供工厂类。通过不同的工厂实例创建不同的产品实例。在同一层次结构中,可以添加任何产品。抽象工厂抽象工厂处理产品族的概念。例如,每家汽车公司可能同时生产轿车、卡车和公共汽车。那么,每个工厂都必须有办法制造汽车、卡车和公共汽车。添加新的产品线以应对产品系列的概念很容易,但不能添加新产品。在工厂模式中,最重要的是工厂类,而不是产品类。产品类可以是多种形式,多层继承或单个类。但要清楚的是,工厂模式接口将只返回一种类型的实例,在设计产品类时应该注意这一点。最好有一个父类或一个共同实现的接口。使用工厂模式,返回的实例必须由工厂创建,而不是从其他对象获取。工厂模式返回的实例可能不是新创建的,也可以返回工厂创建的实例。差异化
差异化简单工厂:用于生产同一层次的任何产品。
(无法添加新产品)工厂方法:用于在同一层次结构中生产固定产品。摘要工厂:用于生产不同产品系列的所有产品。(我们无法添加新产品;我们支持添加产品族)以上三种工厂方法在层次和产品族两个方向上有不同程度的支持。所以我们应该根据情况考虑采用哪种方法。
java抽象工厂模式详解 抽象工厂方法模式 抽象工厂模式应用场景
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。