享元模式又称Flyweight,代表轻量级的意思,适用于可能存在大量可重复对象的场景
这里举一个售卖火车票的例子
共享对象的接口,这里是火车票接口
1 | public interface Ticket { |
具体对象类
1 | public class TrainTicket implements Ticket { |
对象生产工厂
1 | public class TickFactory { |
在这里我们使用了一个map来存放已经存在的对象,这也是享元模式的关键,这样就不用每次都重新创建对象,减少内存的消耗
使用如下
1 | public class Main { |
结果