介绍水果
创建Fruit接口,让其他所需的水果类来继承他
package introducefruit;
public interface Fruit {
public void introduce();
public void show();
}
苹果类实现Fruit接口
package introducefruit;
public class Apple implements Fruit{
public void introduce() {
System.out.println("这是苹果");
}
public void show() {
System.out.println("苹果甜!");
}
}
Grape类实现Fruit接口
package introducefruit;
public class Grape implements Fruit{
public void introduce() {
System.out.println("这是葡萄");
}
public void show() {
System.out.println("葡萄酸!");
}
}
StrawBerry类实现Fruit接口
package introducefruit;
public class StrawBerry implements Fruit{
public void introduce() {
System.out.println("这是草莓");
}
public void show() {
System.out.println("草莓香!");
}
}
为了将所有水果类进行初始化输出相应的初始化语句FruitFactory设置为抽象类
package introducefruit;
public abstract class FruitFactory {
protected abstract Fruit getFruit();
public Fruit createFruit() {
Fruit f = getFruit();
f.introduce();
return f;
}
}
AppleFactory继承FruitFactory抽象类
package introducefruit;
public class AppleFactory extends FruitFactory{
public Fruit getFruit() {
return new Apple();
}
}
GrapeFactory继承FruitFactory抽象类
package introducefruit;
public class GrapeFactory extends FruitFactory{
public Fruit getFruit() {
return new Grape();
}
}
StrawBerryFactory继承FruitFactory抽象类
package introducefruit;
public class StrawBerryFactory extends FruitFactory{
public Fruit getFruit() {
return new StrawBerry();
}
}
客户端进行输出
package introducefruit;
import java.util.Scanner;
public class Client {
public static void main(String args[]) {
while(true) {
System.out.println("请输入您想了解的水果的序号:");
System.out.println("1.Apple");
System.out.println("2.Grape");
System.out.println("3.StrawBerry");
Scanner sc = new Scanner(System.in);
int userChoice = sc.nextInt();
FruitFactory ff = null;
Fruit f;
if(userChoice==1) {
ff = new AppleFactory();
ff.getFruit();
f = ff.createFruit();
f.show();
}
else if(userChoice==2) {
ff = new GrapeFactory();
ff.getFruit();
f = ff.createFruit();
f.show();
}
else if(userChoice==3) {
ff = new StrawBerryFactory();
ff.getFruit();
f = ff.createFruit();
f.show();
}
}
}
}