一个造生产水果的工厂接口---FruitFactory.java
package fu.innerClass;
public interface FruitFactory {
public Fruit getFruit();
}
水果接口:Fruit
代码如下:
package fu.innerClass;
public interface Fruit {
public void say();
}
两个具体的水果,一个Apple,一个Orange
Apple.java
package fu.innerClass;
public class Apple implements Fruit {
private Apple(){};//私有构造方法,这样做是为了不被new出来
public void say() {
System.out.println("我是苹果");
}
经典之处,每个具体的水果提供一个生产自己的工厂
public static FruitFactory factory=new FruitFactory(){
public Fruit getFruit(){
return new Apple();
}
};
}
Orange.java
package fu.innerClass;
public class Orange implements Fruit {
private Orange(){};
public void say() {
System.out.println("我是橘子");
}
和上面Apple一样的
public static FruitFactory factory=new FruitFactory(){
public Fruit getFruit(){
return new Orange();
}
};
}
测试类
package fu.innerClass;
public class Util {
public static void main(String[] args){
Fruit fruit= recieveFactory(Apple.factory);
fruit.say();
Fruit fruit2=recieveFactory(Orange.factory);
fruit2.say();
}
该方法很重要,接受一个具体水果的工厂作为参数,返回值为Fruit引用
public static Fruit recieveFactory(FruitFactory factory){
return factory.getFruit();//根据传入的工厂,返回具体水果
}
}
本文介绍了一个简单的工厂模式应用实例——水果工厂。通过定义水果接口及其实现类(苹果和橘子),并创建对应的工厂,实现了不同水果类型的创建过程。利用工厂方法模式,使得客户端能够通过传递不同的工厂来获取所需的水果对象。
478

被折叠的 条评论
为什么被折叠?



