工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪
一个类。工厂方法使一个类的实例化延迟到其子类。
工厂方法模式结构为:
public abstract class AbstractFacotry { public abstract Fruit productionFruit(); }
public class AppleFactory extends AbstractFacotry{ @Override public Fruit productionFruit() { return new Apple("苹果"); } }
public class OrangeFactory extends AbstractFacotry{ @Override public Fruit productionFruit() { return new Orange("橘子"); } }
public class PearFactory extends AbstractFacotry{ @Override public Fruit productionFruit() { // TODO Auto-generated method stub return new Pear("梨"); } }
public class Apple extends Fruit { public Apple(String name,String colour) { this.name = name; this.colour = colour; } public Apple(String name) { this.name = name; } @Override public void showName() { System.out.println("水果名称为:"+this.name); } @Override public void showColour() { System.out.println("水果名颜色:"+this.colour); } @Override public void setColour(String colour) { this.colour = colour; } }
public class Orange extends Fruit { public Orange(String name, String colour) { this.name = name; this.colour = colour; } public Orange(String name) { this.name = name; } @Override public void showName() { System.out.println("水果名称为:"+this.name); } @Override public void showColour() { System.out.println("水果名颜色:"+this.colour); } @Override public void setColour(String colour) { this.colour = colour; } }
public class Pear extends Fruit { public Pear(String name, String colour) { this.name = name; this.colour = colour; } public Pear(String name) { this.name = name; } @Override public void showName() { System.out.println("水果名称为:"+this.name); } @Override public void showColour() { System.out.println("水果名颜色:"+this.colour); } @Override public void setColour(String colour) { this.colour = colour; } }
public static void main(String[] args) { AbstractFacotry af = new AppleFactory(); Fruit productionFruit = af.productionFruit(); productionFruit.setColour("red"); productionFruit.showName(); productionFruit.showColour(); AbstractFacotry pear = new PearFactory(); Fruit pear1 = pear.productionFruit(); pear1.setColour("yellow"); pear1.showName(); pear1.showColour(); }
相关推荐
基础知识讲解分析+工厂模式实例代码以及分析,浅显易懂,不会辜负你的三分
根据描述,我们将深入探讨Java中的两种工厂模式:工厂方法模式和抽象工厂模式,并通过实例来理解它们的工作原理。 首先,我们来看**工厂方法模式**。这种模式定义了一个用于创建对象的接口,但让子类决定实例化哪一...
工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 **1. 简单工厂模式(Simple Factory)** 简单工厂模式中,有一个中心工厂类负责创建对象。这个工厂类通常由一个静态方法构成,根据传入的...
本文将深入探讨Java中的工厂模式,包括基本的工厂模式、抽象工厂模式以及工厂方法模式。 **工厂模式**:工厂模式的核心思想是提供一个创建对象的接口,但让实现这个接口的类来决定实例化哪一个类。这样,客户端无需...
工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式** 简单工厂模式是最简单的工厂模式实现,它提供一个静态方法或者类来创建对象,这个类通常被称为“工厂”。用户只需要...
在这个“工厂方法模式java实例demo”中,我们可以期待看到如何在实际代码中应用这一模式。 在刘伟老师的《设计模式》一书中,他可能通过一个具体的示例解释了工厂方法模式的概念。这个例子可能涉及创建不同类型的...
在Java编程中,工厂方法模式通常通过以下步骤实现: 1. **定义抽象工厂类**:首先,我们需要创建一个抽象工厂接口或抽象类,它声明了将要创建的对象的类型。例如,我们可以定义一个名为`Product`的抽象类或接口,它...
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
在Java中,工厂模式分为三种:简单工厂、工厂方法模式和抽象工厂模式。 **简单工厂模式** 是最基本的工厂模式,它由一个工厂类根据传入的参数决定创建哪一种产品类的实例。简单工厂容易实现,但违反开闭原则,即...
JAVA工厂模式工厂方法模式.pdf
java设计模式 工厂方法模式uml类图,一张图就让你秒懂工厂方法模式
例题简单的阐述了Java工厂模式的概念,有利于读者更好地了解Java工厂模式
工厂模式分为三种主要类型:简单工厂模式、普通工厂模式(也称为工厂方法模式)和抽象工厂模式。 1. **简单工厂模式**: - 简单工厂模式中,有一个中心工厂类,它负责根据输入条件(通常是一个参数)来创建具体的...
在这个压缩包中,`FactoryMethod`可能包含了Java实现工厂方法模式的源代码示例。 设计模式是一种在特定场景下解决软件设计问题的通用、可重用的解决方案,它代表了最佳实践,被广泛应用于各种编程语言中。工厂方法...
Java工厂模式是面向对象设计模式中的一个重要概念,它提供了一种创建对象的最佳方式。在工厂模式中,我们创建对象时不直接实例化具体类,而是通过一个接口或者抽象类来间接创建。这种模式的核心在于将对象的创建过程...
Java设计模式之工厂模式实现方法详解 工厂模式是 Java 设计模式中的一种重要模式,它提供了一种创建对象的接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。工厂模式主要有三种:简单工厂模式、...
在Java中,工厂方法模式允许我们定义一个创建对象的接口,但让实现这个接口的类决定实例化哪一个类。这样,类的实例化过程就被推迟到了子类中。 工厂方法模式的核心在于抽象工厂(Abstract Factory)和具体工厂...
工厂模式通常分为三种:简单工厂模式、工厂方法模式和抽象工厂模式。下面我们将详细探讨这三种工厂模式在Java中的实现。 **1. 简单工厂模式** 简单工厂模式是最早期的工厂模式形式,它通过一个静态工厂方法来创建...
在Java中,简单工厂、工厂方法和抽象工厂是三种不同的工厂模式实现。 5. **简单工厂模式**:是最简单的工厂模式形式,它包含一个工厂类,根据传入的参数决定返回哪种类型的实例。虽然易于理解,但不易扩展,因为...