`
隐形的翅膀
  • 浏览: 496948 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java抽象工厂学习

阅读更多
一家公司生产两个系列的产品

  A系列, 食品里: milk,meat,noodle

  B系列, 与A系列相对应的餐具,Spoon,Knife,Chopsticks

产品有两个系列,在A系列某个位置的产品,在B系列一定有一个对应的产品, 牛奶--汤勺, 肉-刀, 面条--筷子



抽象产品系列之一, 食品类接口与三个具体的食品类
package Food;
public interface Food {
   public String getMyFood();
}

public class Meat implements Food {

	public String getMyFood() {
		
		return "Meat";
	}

}

public class Milk implements Food {

	public String getMyFood() {
		
		return "Milk";
	}

}

public class Noodle implements Food {

	public String getMyFood() {
		
		return "Noodle";
		
	}

}


抽象产品系列之二, 餐具类接口与三个具体的餐具类

package TableWare;

public interface TableWare {
   public String getMyTableWare();
}

public class Knife implements TableWare {

	public String getMyTableWare() {
		
		return "Knife";
	}

}

public class Spoon implements TableWare {

	public String getMyTableWare() {
		
		return "Spoon";
	}

}

public class Chopsticks implements TableWare {

	public String getMyTableWare() {
		
		return "Chopsticks";
	}

}


抽象工厂接口,它是抽象工厂模式的核心,与具体的产品逻辑无关
public interface KitchenFactory {
   public Food getFood();
   public TableWare getTableWare();
}


具体工厂A,生产牛奶和它对应的汤勺
public class KitchenFactoryA implements KitchenFactory {

	public Food getFood() {
		
		return new Milk();
	}

	public TableWare getTableWare() {
		// TODO Auto-generated method stub
		return new Spoon();
	}

}

具体工厂B,生产肉和它对应的刀子
public class KitchenFactoryB implements KitchenFactory {

	public Food getFood() {
		
		return new Meat();
	}

	public TableWare getTableWare() {
		
		return new Knife();
	}

}

具体工厂C,生产面条和它对应的筷子
public class KitchenFactoryC implements KitchenFactory {

	public Food getFood() {
		
		return new Noodle();
	}

	public TableWare getTableWare() {
		
		return new Chopsticks();
	}

}


 在什么情形下应当使用抽象工厂模式

 在以下情况下,应当考虑使用抽象工厂模式。

 首先,一个系统应当不依赖于产品类实例被创立,组成,和表示的细节。这对于所有形态的工厂模式都是重要的。

 其次,这个系统的产品有多于一个的产品族。

 第三,同属于同一个产品族的产品是设计成在一起使用的。这一约束必须得在系统的设计中体现出来。

 最后,不同的产品以一系列的接口的面貌出现,从而使系统不依赖于接口实现的细节。

 其中第二丶第三个条件是我们选用抽象工厂模式而非其它形态的工厂模式的关键性条件。

分享到:
评论

相关推荐

    java抽象工厂模式实现

    在Java中,抽象工厂模式通常包含以下角色: 1. **抽象工厂(Abstract Factory)**:这是工厂模式的核心,定义了一组创建对象的接口,客户端通过这个接口请求创建所需的产品。在这个例子中,这个接口可能是`Abstract...

    java抽象工厂模式源码实例

    总的来说,这份压缩包提供了一个Java实现的抽象工厂模式实例,通过学习和理解这个例子,你可以深入掌握抽象工厂模式的原理和使用场景,这对于提升你的Java编程能力以及软件设计水平非常有帮助。在实际项目中,灵活...

    Java 工厂模式 抽象工厂 工厂方法模式

    本文将深入探讨Java中的工厂模式,包括基本的工厂模式、抽象工厂模式以及工厂方法模式。 **工厂模式**:工厂模式的核心思想是提供一个创建对象的接口,但让实现这个接口的类来决定实例化哪一个类。这样,客户端无需...

    JAVA设计模式之抽象工厂模式

    抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象集合的接口,而无需指定具体类。...这个压缩包可能包含了详细的设计和实现,帮助学习者深入理解抽象工厂模式的工作原理及其在Java编程中的应用。

    Java抽象工厂设计模式的研究与实现.pdf

    "Java抽象工厂设计模式的研究与实现" Java抽象工厂设计模式是一种创造型设计模式,属于factory pattern的升级版本。它提供了一种解决方案,以便在不指定具体实现类的情况下,创建复杂对象的家族。 Java抽象工厂...

    Java设计模式-抽象工厂

    **Java设计模式——抽象工厂** 在软件工程中,设计模式是一种在特定场景下解决常见问题的模板或蓝图。...通过学习抽象工厂模式,开发者可以更好地处理复杂的对象创建逻辑,提升软件的灵活性和可维护性。

    工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式

    工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式** 简单工厂模式是最简单的工厂模式实现,它提供一个静态方法或者类来创建对象,这个类通常被称为“工厂”。用户只需要...

    java工厂方法模式和抽象工厂模式实例

    根据描述,我们将深入探讨Java中的两种工厂模式:工厂方法模式和抽象工厂模式,并通过实例来理解它们的工作原理。 首先,我们来看**工厂方法模式**。这种模式定义了一个用于创建对象的接口,但让子类决定实例化哪一...

    一个很好的抽象工厂实例

    在Java或其他面向对象编程语言中,抽象工厂模式通常通过接口或抽象类来实现。 在“一个很好的抽象工厂实例”中,我们可以期待看到如何应用这种模式的实例。这个实例可能包含了数据库连接、数据操作和业务逻辑等部分...

    酒店管理系统(抽象工厂+三层)

    酒店管理系统是一个典型的业务应用软件,它使用了设计模式中的“抽象工厂”以及软件...通过学习和理解这个项目,你可以深入了解如何在实际开发中应用抽象工厂模式和三层架构,这对于提升你的IT技能和职业发展大有裨益。

    设计模式抽象工厂实验报告

    1. **深入理解抽象工厂模式的基本概念和原理**:通过理论学习和实际操作,掌握抽象工厂模式的定义、组成以及工作原理。 2. **应用抽象工厂模式进行软件结构设计与实现**:通过具体案例(即开发一套界面皮肤库),...

    简单工厂和抽象工厂的Demo

    在软件设计模式中,"简单工厂"和"抽象工厂"是两种常见的创建型设计模式,它们主要用于对象的创建。这两种模式都是为了将对象的创建过程封装起来,使得客户端代码无需关心具体的实现细节,只需调用工厂提供的接口即可...

    抽象工厂模式Demo

    可能包括`IFactory.java`(抽象工厂接口)、`ConcreteFactory1.java`和`ConcreteFactory2.java`(具体工厂类)、`IProductA.java`和`IProductB.java`(抽象产品接口)以及`ConcreteProductA1.java`等(具体产品类)...

    肯德基:抽象工厂模式

    在Java中,抽象工厂模式被广泛应用,它有助于整合代码,提高系统的可扩展性和可维护性。 标题所指的“肯德基”,在这里并不是指真实的餐饮连锁品牌,而是作为抽象工厂模式的一个例子。通过把肯德基生产各种食物的...

    抽象工厂模式demo

    抽象工厂模式是一种创建型设计模式,它提供了一...通过学习和理解这个"抽象工厂模式demo",开发者可以更好地掌握设计模式的应用,提升代码质量,降低维护成本,并为复杂的Android项目提供更加稳定和可维护的基础架构。

    【Java设计模式】源码Java 中的抽象工厂模式:优雅地掌握对象创建

    本文将深入探讨 Java 中的抽象工厂设计模式,包括其意图、详细解释、编程示例、类图、适用场景、教程、优点和权衡、实际应用以及相关设计模式。同时,还将提供示例代码的下载链接,方便读者进行学习和实践。 Java 中...

    AbstractFactory 抽象工厂

    抽象工厂(Abstract Factory)模式是设计模式中的一种创建型模式,它提供了一种...在阅读提供的博客文章《AbstractFactory 抽象工厂》和研究压缩包中的相关文件时,你可以深入学习到更多关于这个模式的实践和应用场景。

    简单抽象工厂和反射的入门例子

    通过学习这个实践案例,你将更好地理解抽象工厂模式如何工作,以及如何在实际项目中利用Java反射来提高代码的灵活性和可维护性。同时,这也为你提供了在复杂系统中设计和实现可扩展组件的宝贵经验。

    JAVA设计模式研究之抽象工厂模式

    ### JAVA设计模式研究之抽象工厂模式 #### 一、引言 设计模式是软件工程领域的一项...在实际开发中,特别是在需要处理多种产品系列或平台兼容性的项目中,抽象工厂模式是一个非常有用的工具,值得深入学习和应用。

    工厂方法模式和抽象工厂模式

    在软件设计模式中,工厂方法模式(Factory Method Pattern)和抽象工厂模式(Abstract Factory Pattern)是两种常用的创建型设计模式,它们都属于“工厂”家族,但有着不同的应用场景和目标。 工厂方法模式的核心...

Global site tag (gtag.js) - Google Analytics