public class FlyITicket implements ITicket {
private String from;
private String to;
private BigDecimal price;
public FlyITicket(String from, String to) {
this.from = from;
this.to = to;
this.price= new BigDecimal(new Random().nextInt(100));
}
@Override
public void showPrice() {
System.out.println(from+"->"+to+" price:"+price);
}
}
public class TicketFactory {
private static Map<String,ITicket> map=new HashMap<>();
public static ITicket queryTicket(String from,String to){
String key = from + "->" + to;
if (map.containsKey(key)){
System.out.println("使用缓存:"+key);
return map.get(key);
}else{
System.out.println("创建对象:"+key);
FlyITicket flyTicket = new FlyITicket(from, to);
map.put(key,flyTicket);
return flyTicket;
}
}
}
public class Test {
public static void main(String[] args) {
TicketFactory.queryTicket("梅州", "深圳").showPrice();
TicketFactory.queryTicket("梅州", "深圳").showPrice();
TicketFactory.queryTicket("梅州", "惠州").showPrice();
}
}