享元模式模式 源码举例
This commit is contained in:
5
pom.xml
5
pom.xml
@@ -115,6 +115,11 @@
|
||||
<artifactId>tomcat-embed-core</artifactId>
|
||||
<version>8.5.32</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-pool2</artifactId>
|
||||
<version>2.4.2</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
||||
@@ -2,6 +2,9 @@ package top.fjy8018.designpattern.pattern.structural.flyweight;
|
||||
|
||||
/**
|
||||
* 享元模式:利用共享的方式来支持大量细粒度的对象,这些对象一部分内部状态是相同的。
|
||||
* JDK源码:{@link Integer#valueOf(int)} {@link Integer.IntegerCache}
|
||||
* 其他类型同理 {@link Long#valueOf(long)} {@link Boolean#valueOf(boolean)} {@link Byte#valueOf(byte)} {@link Character#valueOf(char)}
|
||||
* Apache源码:连接池{@link org.apache.commons.pool2.impl.GenericObjectPool#returnObject(Object)},连接池配置 {@link org.apache.commons.pool2.impl.GenericObjectPoolConfig}
|
||||
*
|
||||
* @author F嘉阳
|
||||
* @date 2018-10-14 16:13
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package top.fjy8018.designpattern.pattern.structural.flyweight;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@Slf4j
|
||||
class EmployeeTest {
|
||||
|
||||
private static final String departments[] = {"RD", "QA", "PM", "BD"};
|
||||
@@ -14,4 +16,17 @@ class EmployeeTest {
|
||||
employee.report();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void integerTest() {
|
||||
Integer a = new Integer(88);
|
||||
int c = 88;
|
||||
Integer d = new Integer(88);
|
||||
Integer e = Integer.valueOf(88);
|
||||
Integer f = 88;
|
||||
log.info("a==c? {}", a == c);
|
||||
log.info("a==d? {}", a == d);
|
||||
log.info("a==e? {}", a == e);
|
||||
log.info("e==f? {}", e == f);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user