`
zhangb5228509
  • 浏览: 5145 次
社区版块
存档分类
最新评论

静态工厂方法模式

阅读更多

创建模式——将类实例化的过程给抽象化

静态工厂主要由三个角色构成:

1、工厂类角色

2、抽象产品角色

3、具体产品角色

 

具体的代码实现:

Util.java

 

public class Util {

public static void log(String msg) {

System.out.println(msg);

}

}

 

NotFruitException.java

 

public class NotFruitException extends Exception{

public NotFruitException(String msg){

super(msg);

}

}

 

IFruit.java

 

public interface IFruit {

void grow();

void harvest();

void plant();

}

 

Apple.java

 

public class Apple implements IFruit {

 

private int treeAge;

 

@Override

public void grow() {

Util.log("苹果生长中……");

}

 

@Override

public void harvest() {

Util.log("苹果收获中……");

}

 

@Override

public void plant() {

Util.log("苹果种植中……");

}

 

public int getTreeAge() {

return treeAge;

}

 

public void setTreeAge(int treeAge) {

this.treeAge = treeAge;

}

 

}

Grape .java
public class Grape implements IFruit{

@Override
public void grow() {
Util.log("草莓生长中……");
}

@Override
public void harvest() {
Util.log("草莓收获中……");
}

@Override
public void plant() {
Util.log("草莓种植中");
}
}
FruitGardener.java
public class FruitGardener {
/**
* 静态工厂方法
* @throws NotFruitException 
*/
public static IFruit factory(String which) throws NotFruitException{
if(which.equals("apple")){
return new Apple();
}else if(which.equals("grape")){
return new Grape();
}else{
throw new NotFruitException("没有这类水果,赶快去种植吧……");
}
}
}
分享到:
评论

相关推荐

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

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

    深入了解工厂模式&工厂方法&抽象工厂

    1. 简单工厂模式:也称为静态工厂方法模式,它通过一个静态方法来创建对象。在这个例子中,`FruitGardener` 类就是简单工厂,它根据输入的字符串(如 "apple"、"strawberry" 或 "grape")返回相应的 `Fruit` 实例(`...

    简单工厂模式-工厂方法模式-抽象工厂模式

    简单工厂模式是一种静态工厂方法,它提供一个公共的工厂类来创建对象。这个工厂类根据传入的参数或者条件来决定创建哪种类型的实例。在简单工厂模式中,通常有一个中心工厂类,它负责知道如何创建各种产品。这种模式...

    工厂方法模式

    进一步,静态工厂方法模式将工厂方法设为静态,这样无需创建`Factory`类的实例就可以直接调用工厂方法创建对象。这降低了对象间的耦合度,同时也简化了使用,因为不需要通过`new`关键字创建工厂对象。 然而,以上两...

    head first工厂模式

    1. **简单工厂模式**:也称为静态工厂方法模式,它通过一个静态方法来创建对象,这个静态方法就是“工厂”。客户端直接调用工厂的静态方法获取所需对象,不需要了解对象的具体创建过程。简单工厂模式适用于产品种类...

    java三种工厂模式文档+三个实例.rar

    - 简单工厂模式是一种静态工厂方法模式,它包含一个静态工厂类,负责创建对象。在这个例子中,可能有一个名为`Factory`的类,其中包含一个静态方法,如`createInstance()`,这个方法根据输入参数返回相应的对象实例...

    工厂模式代码

    1. 简单工厂模式(Simple Factory Pattern):也称为静态工厂方法模式,通过一个静态方法来创建对象,该静态方法根据传入的参数返回不同的实例。 2. 工厂方法模式(Factory Method Pattern):属于多态性设计模式,...

    实验四:工厂模式.rar

    1. **简单工厂模式**:也称为静态工厂方法模式,它包含一个知道如何创建对象的静态工厂方法。这个静态方法根据输入参数来决定返回哪个具体类的实例。这种方式的缺点是工厂类与产品类耦合度过高,不易于扩展。 2. **...

    关于工厂模式的简单例子

    简单工厂模式是工厂模式的一个具体实现,也被称为静态工厂方法模式。在这种模式中,通常由一个静态方法来创建产品对象,这个静态方法可以根据传入的参数或者特定条件来决定返回哪个具体类型的产品。简单工厂模式的...

    工厂模式代码实现_Java

    1. **简单工厂模式**:也称为静态工厂方法模式,通常由一个静态方法创建对象。这种方式适用于产品种类较少且不会频繁扩展的情况。例如,在Java中,`Integer.valueOf()`方法就是一个简单的工厂模式应用,根据传入的...

    Java设计模式04简单工厂模式.pdf

    简单工厂模式,又称为静态工厂方法模式,是一种类创建型模式。在这一模式下,系统中存在一个特殊的类,被称为“工厂”,它负责根据输入的参数创建并返回特定类型的对象。这些对象通常共享一个公共的接口或者基类,但...

    JAVA设计模式之3种工厂模式.doc

    在Java中,这个工厂类通常是静态的,因此也被称为静态工厂方法模式。简单工厂模式的角色包括: 1. **工厂类(Creator)角色**:这个角色负责实际的实例化操作,它通常包含一个静态方法,根据输入参数来决定创建哪种...

    设计模式在android中的应用之1,简单工厂模式

    简单工厂模式(Simple Factory Pattern)是一种静态工厂方法模式,它包含一个工厂类,负责根据输入参数创建相关的产品对象。工厂类知道如何创建对象,而客户端只需知道如何使用对象,无需关心对象是如何被创建的。 ...

    工厂模式代码实现

    简单工厂模式是一种静态工厂方法模式,它包含一个工厂类,负责创建特定类型的对象。工厂类通常包含一个公共静态方法,该方法根据输入参数返回一个具体的产品实例。这种模式将对象的创建与使用分离,使得客户端代码...

    java设计模式之工厂模式(3种完整免费提供).pdf

    简单工厂模式,也称为静态工厂方法模式,其核心是一个工厂类,根据输入的不同条件创建不同类型的实例。这个工厂类通常是具体的Java类,它包含了创建对象的逻辑。简单工厂模式的角色包括工厂类(Creator)、抽象产品...

    [创建型模式] head first 设计模式之工厂模式(Factory)

    1. **简单工厂模式**:也称为静态工厂方法模式,它包含一个静态工厂方法,用于创建对象。静态工厂方法并不属于某个特定的类,而是属于一个公共的类,通常是单例的。这种方式适用于产品种类较少且相对固定的场景。 2...

    JavaEE spring静态工厂创建实例

    本篇将详细介绍如何在Spring中使用静态工厂方法来创建实例。 首先,让我们理解什么是静态工厂方法。静态工厂方法是类中的一个静态成员方法,它不依赖于类的实例,而是通过类名直接调用,返回一个对象。这种方法与...

    JAVA设计模式之工厂模式

    简单工厂模式,也称为静态工厂方法模式,是一种较为简单的工厂模式实现方式。在这个模式中,我们定义一个工厂类,该类包含一个静态方法来实例化不同的类,这些类通常具有相同的接口或抽象类作为父类。 **特点**: -...

    java(工厂设计模式)

    1. **简单工厂模式**(Simple Factory Pattern):这是最基础的工厂模式,也称为静态工厂方法模式。它由一个静态工厂类负责创建一系列相关的对象,这些对象通常具有共同的接口。 2. **工厂方法模式**(Factory ...

Global site tag (gtag.js) - Google Analytics