今天我们来实现一个简单的工厂模式,其中也包括一些简单的继承和抽象方法知识。首先我们建立一个Coffee父类,其中加入了抽象方法,如下:
public abstract class Coffee {
public abstract String getName();
public abstract String payMoney();
}
然后我们建立两个子类,继承Coffee父类,并且重写父类的抽象方法,如下
public class Latte extends Coffee{
@Override
public String getName() {
return "Latte";
}
@Override
public String payMoney() {
return "pay 5$";
}
}
public class BlackCoffee extends Coffee{
@Override
public String getName() {
return "BlackCoffee";
}
@Override
public String payMoney() {
return "pay 3$";
}
}
在建立一个工厂类用来生产Coffee,如下:
public class CoffeeFactory {
public Coffee creatCoffee(String name){
Coffee coffee = null;
if ("Latte".equals(name)){
coffee = new Latte();
}
if ("BlackCoffee".equals(name)){
coffee = new BlackCoffee();
}
return coffee;
}
public Coffee payMoney(String name){
Coffee coffee1 = null;
if ("Latte".equals(name)){
coffee1= new Latte();
}
if ("BlackCoffee".equals(name)){
coffee1 = new BlackCoffee();
}
return coffee1;
}
}
建立一个商店用来服务客户,如下:
public class CoffeeStore {
public Coffee orderCoffee(String name) {
CoffeeFactory factory = new CoffeeFactory();
Coffee coffee = factory.creatCoffee(name);
return coffee;
}
public Coffee payMoney(String name) {
CoffeeFactory factory = new CoffeeFactory();
Coffee coffee1 = factory.creatCoffee(name);
return coffee1;
}
}
最后建一个客户类,如下:
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String Name = in.nextLine();
CoffeeStore coffeeStore = new CoffeeStore();
Coffee coffee = coffeeStore.orderCoffee(Name);
Coffee coffee1 = coffeeStore.payMoney(Name);
System.out.println(coffee.getName());
System.out.println(coffee);
System.out.println(coffee1.payMoney());
System.out.println(coffee1);
}
}
以上就是本期的内容,大家如果有好的想法欢迎在评论区分享!