湖南平台网站建设公司,曲靖珠江网最新消息,微信小程序是什么意思?有什么用,wordpress 保存主题用来尽可能减少内存使用量#xff0c;适用于存在大量重复对象的场景#xff0c;达到对象共享#xff0c;避免创建过多对象的效果#xff0c;提升性能#xff0c;避免内存溢出。 定义#xff1a; 使用共享对象有效支持大量细粒度对象。 适用场景#xff1a; 系统中存在大…用来尽可能减少内存使用量适用于存在大量重复对象的场景达到对象共享避免创建过多对象的效果提升性能避免内存溢出。 定义 使用共享对象有效支持大量细粒度对象。 适用场景 系统中存在大量相似对象细粒度对象具备接近外部状态内部状态与环境无关需要缓冲池。亨元模式其实是通过集合来缓冲对象获取的时候先判断集合里面是否存在该对象如果有就取出来没有创建新的避免不必要的对象创建。 简单例子 接口类 public interface Ticket {public void showTicketInfo(String bunk);
} 接口实现类 public class AirTicket implements Ticket {public String from;public String to;public String bunk;public int price;public AirTicket(String from, String to) {this.from from;this.to to;}Overridepublic void showTicketInfo(String bunk) {price new Random().nextInt(300);System.out.println(从 from 到 to 的 bunk 价格 price);}
} 亨元工厂类创建对象池创建亨元对象 public class AirTicketFactory {public static MapString, Ticket tickets new ConcurrentHashMapString, Ticket();/*** 亨元模式具体体现缓冲对象数据减少对象创建* param from* param to* return*/public static Ticket getTicket(String from, String to) {String key from - to;if (tickets.containsKey(key)) {return tickets.get(key);}else {AirTicket airTicket new AirTicket(from, to);tickets.put(key, airTicket);return airTicket;}}
} 测试类 public class Main {public static void main(String[] args) {Ticket toXianAirTicket0 AirTicketFactory.getTicket(深圳, 西安);Ticket toBeiJingAirTicket AirTicketFactory.getTicket(深圳, 北京);Ticket toXianAirTicket1 AirTicketFactory.getTicket(深圳, 西安);Ticket toXianAirTicket2 AirTicketFactory.getTicket(深圳, 西安);toXianAirTicket0.showTicketInfo(头等舱);toBeiJingAirTicket.showTicketInfo(商务舱);toXianAirTicket1.showTicketInfo(头等舱);toXianAirTicket2.showTicketInfo(头等舱);}
} 结果 从深圳到西安的头等舱价格114
从深圳到北京的商务舱价格215
从深圳到西安的头等舱价格231
从深圳到西安的头等舱价格103