HDIS-Framework
HDIS-Framework是一个基于SpringBoot、Kubernetes、阿里云服务,编写的一个用于支撑微服务的极速开发框架。
其文档详尽,Demo全面,设计合理,开箱即用,节省开发时间,提升开发效率。
配套的docker、Kubernetes教程已踩过各种坑,让你的微服务无障碍的顺畅运行起来。
HDIS与Kubernetes或SpringCloud配合使用,能达到最佳效果。
意图:
运用共享技术有效地支持大量细粒度的对象。
个人理解:
享元模式主要作用是实现对象的共享,即使用共享池,从而减少内存分配的开销。
实现享元的核心是工厂方法,在工厂方法中使用集合(通常是HashTable)来存取已经存在的对象。
可以参考各种连接池的设计,或者spring容器。
适用性:
- 一个应用程序使用了大量的对象。
- 完全由于使用大量的对象,造成很大的存储开销。
- 对象的大多数状态都可变为外部状态。
- 如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。
- 应用程序不依赖于对象标识。由于享元对象可以被共享,对于概念上明显有别的对象,标识测试将返回真值。
简单代码,便于理解:
//享元模式,实现对象的共享,减少内存分配的开销。
public class Flyweight {
//存储已经存在的对象
private Map<String, Object> flyweightMap = new HashMap<>();
//获取对象
public Object getObject(String key) {
//如果集合中存在此的对象,则获取
if(flyweightMap.containsKey(key)) {
return flyweightMap.get(key);
}
//如果集合不存在此对象,则新增并放入集合中,然后返回此对象
Object obj = new Object();
flyweightMap.put(key, obj);
return obj;
}
}