Abstract Factory Pattern
抽象工厂模式
抽象工厂,怎么理解呢?
简单点就是指一个工厂的出口不再是之前的一个了,变成多个了,举个例子来说。
工厂接口下有俩个子工厂,一个生产热带产品,一个生产亚热带产品,他们分别生产两种物品,水果和蔬菜!热带工厂和亚热带工厂均提供了俩个产品的出口,所以他们都是抽象工厂。
package com.pattern.abstractfactory; /** * 工厂提供两个出口,一个是生产水果,一个是生产蔬菜 */ public interface Factory { public Fruit createFruit(String name); public Veggie createVeggie(String name); }
package com.pattern.abstractfactory; /** * 水果接口 */ public interface Fruit { public void sayName(); }
package com.pattern.abstractfactory; /** * 蔬菜接口 */ public interface Veggie { public void sayName(); }
package com.pattern.abstractfactory; /** * 生产热带产品的工厂 */ public class TropicalFactory implements Factory{ @Override public Fruit createFruit(String name) { if(name!=null&&name.equalsIgnoreCase("shuiguo")){ System.out.println("热带水果"); } return null; } @Override public Veggie createVeggie(String name) { if(name!=null&&name.equalsIgnoreCase("shucai")){ System.out.println("热带蔬菜"); } return null; } }
package com.pattern.abstractfactory; /** * 生产亚热带产品的工厂 */ public class SubTropicalFactory implements Factory{ @Override public Fruit createFruit(String name) { if(name!=null&&name.equalsIgnoreCase("shuiguo")){ System.out.println("亚热带水果"); } return null; } @Override public Veggie createVeggie(String name) { if(name!=null&&name.equalsIgnoreCase("shucai")){ System.out.println("亚热带蔬菜"); } return null; } }
package com.pattern.abstractfactory; public class Test { @SuppressWarnings("unused") public static void main(String[] args) { Fruit f=new TropicalFactory().createFruit("shuiguo"); Veggie v=new TropicalFactory().createVeggie("shucai"); } }
相关推荐
1. 抽象工厂(Abstract Factory):这是模式的核心,它是一个接口或抽象类,定义了一系列创建对象的方法,但并不直接实例化具体的对象。这些方法用于创建一系列相关或相互依赖的对象。 2. 具体工厂(Concrete ...
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建一系列相关或相互依赖对象的接口。这个模式使得客户端代码与具体产品的实现解耦,从而提高了系统的灵活性和...
### 抽象工厂模式(Abstract Factory Pattern) #### 引入 在探讨抽象工厂模式之前,我们先回顾一下之前介绍过的简单工厂模式与工厂方法模式。这两种模式主要关注于解决对象创建过程中“new”操作的问题,使得创建...
在C#中实现抽象工厂模式(Abstract Factory Pattern)涉及定义一个抽象工厂接口,该接口声明用于创建抽象产品的方法。然后,为每个具体产品族实现一个具体工厂,这些工厂提供创建具体产品的实现。最后,客户端代码...
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种创建对象集合的接口,而无需指定具体的产品类型。这种模式适用于当系统需要在不同平台或环境中创建一组相关或相互依赖的对象时,而这些...
在Java中,抽象工厂模式(Abstract Factory Pattern)同样是一种创建型设计模式,它允许在不指定具体类的情况下创建一系列相关或相互依赖的对象。压缩包文件代码是一个简单的Java实现示例,展示了如何使用抽象工厂...
**抽象工厂模式(Abstract Factory Pattern)**是一种创建型设计模式,它提供了一种创建对象族的接口,而无需指定它们的具体类。这种模式是当一个系统需要根据不同的平台或者环境来创建一组相关或相互依赖的对象时,...
1. 抽象工厂(Abstract Factory):定义一个创建对象的接口,但不指定具体的产品实现,而是由具体的工厂类来实现。 2. 具体工厂(Concrete Factory):实现了抽象工厂接口,负责创建具体的产品对象。 3. 抽象产品...
此外,抽象工厂模式还可以与其他设计模式结合使用,比如工厂方法模式(Factory Method Pattern),在某些情况下,可以将抽象工厂模式的抽象工厂类设计为工厂方法模式,让子类决定实例化哪一个类。同时,抽象工厂模式...
抽象工厂模式(Abstract Factory Pattern)是创建型设计模式的一种,它提供了一个接口用于创建一系列相关的或相互依赖的对象,而无需指定它们具体的类。该模式的核心在于提供一个高层接口来创建一组相关的产品对象。...
1. **创建型模式**(Creational Patterns):这类模式主要关注对象的创建过程,包括单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式...
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。这种模式的主要目的是为了隔离产品对象的创建过程,使得更换产品族或者...
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,提供一个接口用于创建一系列相关或相互依赖的对象,而无需指定它们的具体类。这种模式常用于需要跨多个产品系列进行实例化的场景。 抽象工厂模式的...
**抽象工厂模式(Abstract Factory Pattern)是创建型设计模式之一,它提供了一种创建对象的接口,使得子类可以决定实例化哪一个类。这种类型的设计模式属于类的创建模式。** 在C#中,抽象工厂模式的核心在于抽象...
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它通过定义一个创建对象的接口来创建对象,但将具体实现的决定留给子类来决定。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式...
3. **抽象工厂模式(Abstract Factory Pattern)**:提供了创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。在C++中,抽象工厂通常包含一组创建不同产品族的工厂方法,每个产品族都有一个具体的工厂类...
在软件设计模式中,工厂方法模式(Factory Method Pattern)和抽象工厂模式(Abstract Factory Pattern)是两种常用的创建型设计模式,它们都属于“工厂”家族,但有着不同的应用场景和目标。 工厂方法模式的核心...
### Java23种设计模式之抽象工厂模式 #### 模式动机 在探索设计模式的领域里,**抽象工厂模式**是一种重要的模式,它解决了一个关键问题:如何在一个系统中创建一系列相关或相互依赖的对象,而无需指定这些对象的...
6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER PATTERN 11、桥梁模式BRIDGE PATTERN 12、...