首先创建六个类:Coffee,Coffeefactory,Tea,Blackcoffee,Syore以及用户端Client。
通过子类继承父类的特性进行分工来完成客户的需求。
将Coffee定为Tea和Blackcoffee的父类,使其继承Coffee中的getName方法。
Coffee:
package jsu.mjj.factory;
public abstract class Coffee{
public abstract String getName();
}
Client:
package jsu.mjj.factory;
public class client {
public static void main(String[] args) {
Store store = new Store();
Coffee coffee = store.orderCoffee("tea");
System.out.println(coffee.getName());
System.out.println(coffee);
}
}
Store:
package jsu.mjj.factory;
public class Store {
public Coffee orderCoffee(String type)
{
coffeefactory factory = new coffeefactory();
Coffee coffee = factory.creatCoffee(type);
return coffee;
}
}
Coffeefactory:
package jsu.mjj.factory;
public class coffeefactory {
public Coffee creatCoffee(String type) {
Coffee coffee = null;
if ("black".equals(type)) {
coffee = new blackcoffe();
}
else if ("tea".equals(type)) {
coffee = new Tea();
}
return coffee;
}
}
Tea:
package jsu.mjj.factory;
public class Tea extends Coffee{
@Override
public String getName() {
return "Tea";
}
}
Blackcoffee:
package jsu.mjj.factory;
public class blackcoffe extends Coffee {
@Override
public String getName() {
return "blackcoffee";
}
}