在工厂方法模式中具体的工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个方法。但是有时候我们需要一个工厂可以提供多个产品的对象,而不是一个单一的产品对象。
为了更好的理解抽象工厂,我引入另外一个实例:
在这里有个设备工厂(抽象的)他生产两种设备,分别是电视机和空调,但是涉及到品牌的区别,所以有两个具体的设备工厂,分别是Haier和TCL,他们都能生产自己家品牌的电视机和空调。
Code:
设备工厂以及具体设备工厂
public interface EFactory { public Television produceTelevision(); public AirConditioner produceAirConditioner(); } public class TCLFactory implements EFactory { public Television produceTelevision() { return new TCLTelevision(); } public AirConditioner produceAirConditioner() { return new TCLAirConditioner(); } } public class HaierFactory implements EFactory { public Television produceTelevision() { return new HaierTelevision(); } public AirConditioner produceAirConditioner() { return new HairAirConditioner(); } }
电视产品
public interface Television { public void play(); } public class TCLTelevision implements Television { public void play() { System.out.println("TCL Playing....."); } } public class HaierTelevision implements Television { public void play() { System.out.println("Haier Playing......"); } }
空调产品
public interface AirConditioner { public void changeTemperature(); } public class HairAirConditioner implements AirConditioner { public void changeTemperature() { System.out.println("Haier Change Temperature....."); } } public class TCLAirConditioner implements AirConditioner { public void changeTemperature() { System.out.println("TCL Change Temperature....."); } }
Cilent
public class Client { public static void main(String args[]) { try { EFactory factory; Television tv; AirConditioner ac; factory= new HaierFactory(); tv=factory.produceTelevision(); tv.play(); ac=factory.produceAirConditioner(); ac.changeTemperature(); } catch(Exception e) { System.out.println(e.getMessage()); } } }
所以说当通过工厂想得到的对象不仅仅是单个的前提下,可以考虑使用抽象工厂。
相关推荐
抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象集合的接口,而无需指定具体的类。这种模式允许系统独立于如何创建、组合和表示产品对象的细节进行设计,为产品族(一组相关或相互依赖的对象)提供...
抽象工厂模式是软件设计模式中的一种,属于创建型模式,它的主要目的是提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。在实际应用中,当我们需要创建一组具有共同特性的对象,而这些对象分别...
抽象工厂模式是设计模式中的一种,尤其适用于创建一组相关或相互依赖的对象。这个实例Demo将向我们展示如何在iOS环境中应用抽象工厂模式。 抽象工厂模式的核心思想是提供一个接口,用于创建一系列相关或相互依赖的...
"C# Winform抽象工厂架构"是一个基于C#语言和Windows Forms(Winform)平台,利用抽象工厂设计模式构建的多层架构项目。在这个项目中,开发者使用了抽象工厂模式来创建和管理报表查询的相关组件,同时结合了反射机制...
抽象工厂模式是设计模式中的一种,它提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。在软件工程中,当系统需要在运行时选择不同的产品族时,或者想要隔离具体产品的实现细节时,抽象工厂...
java设计模式 抽象工厂模式详解 一张图让你彻底明白抽象工厂模式
### 抽象工厂模式实验报告知识点解析 #### 实验背景及目标 本次实验报告来源于南京工程学院软件设计与体系结构课程。实验的核心在于理解和实践**抽象工厂模式**,这是一种常用的面向对象设计模式,旨在解决软件...
在软件设计模式中,"简单工厂"和"抽象工厂"是两种常见的创建型设计模式,它们主要用于对象的创建。这两种模式都是为了将对象的创建过程封装起来,使得客户端代码无需关心具体的实现细节,只需调用工厂提供的接口即可...
抽象工厂模式是一种设计模式,属于创建型模式,它提供了一种创建对象族的接口,而无需指定其具体的类。这种模式的关键在于“族”,它表示一系列相关或相互依赖的对象。在不指定具体类的情况下,抽象工厂模式使得...
工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式** 简单工厂模式是最简单的工厂模式实现,它提供一个静态方法或者类来创建对象,这个类通常被称为“工厂”。用户只需要...
设计模式 - 抽象工厂模式 抽象工厂模式是一种创建型设计模式,它提供了一种方式来创建一组相关或相互依赖的对象,而不需要指定具体的类。该模式允许客户端使用抽象的接口来创建一组相关的产品,而不需要关系实际...
本篇文章将对三种主要的工厂模式:简单工厂、工厂方法和抽象工厂进行深入的对比和总结。 **简单工厂模式** 是最基础的工厂模式形式,它提供一个静态方法或类来创建对象。在这个模式中,工厂是负责创建对象的中心...
在这个“.NET开发三层版抽象工厂小案例”中,我们将探讨如何运用抽象工厂模式来实现各层之间的交互。 抽象工厂模式是一种创建型设计模式,它提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。...
在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...
工厂方法模式和抽象工厂模式是两种常见的设计模式,它们都属于创建型模式,用于解决对象的创建问题。在软件设计中,这两种模式都是用来隔离对象的创建和使用,以提高系统的灵活性和可扩展性。 首先,工厂方法模式的...
抽象工厂模式是设计模式中的一种,它属于创建型模式,主要解决的是当系统有多个产品族,而每个产品族又有多个具体产品时,如何组织代码的问题。在Java中,抽象工厂模式提供了一种创建对象组的方式,使得这些对象属于...
抽象工厂模式是设计模式中的一种创建型模式,它提供了一个创建对象族的接口,而无需指定它们的具体类。在.NET开发中,这种模式常用于实现多数据库连接,比如连接到MySQL、SQL Server或Oracle等不同的数据库系统。...
抽象工厂模式是软件工程中常用的一种创建型设计模式,它的核心思想是为创建一组相关或相互依赖的对象提供一个接口,而不需要指定它们具体的类。在Java中,抽象工厂模式被广泛应用,它有助于整合代码,提高系统的可...
在给定的标题和描述中,主要涉及了两种设计模式:三层架构(Three-Tier Architecture)和抽象工厂模式(Abstract Factory Pattern),以及C#中的反射(Reflection)技术。下面将详细阐述这三个知识点。 首先,**三...
抽象工厂模式是设计模式中的一种,属于创建型模式,它提供了一种创建对象族的接口,而无需指定其具体的类。这种模式的关键在于"抽象工厂",它是一个接口或者抽象类,定义了创建一系列相关或相互依赖对象的接口,而...