feat(class25): 添加单例模式示例代码

- 新增 A 类和 B 类作为单例模式的示例
- 更新 .gitignore 文件,忽略 META-INF 和 MANIFEST.MF 文件
- 在项目设置中添加 Lombok 注解支持
- 修改 Test 类,注释掉 SilverCard 相关代码
- 新增 Test 类测试单例模式
This commit is contained in:
2025-07-15 15:26:36 +08:00
parent 612c7f8bfd
commit baefa25e78
7 changed files with 55 additions and 3 deletions

5
.gitignore vendored
View File

@@ -28,4 +28,7 @@ bin/
.vscode/
### Mac OS ###
.DS_Store
.DS_Store
META-INF/
MANIFEST.MF

5
.idea/misc.xml generated
View File

@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<writeAnnotations>
<writeAnnotation name="lombok.Getter" />
</writeAnnotations>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>

View File

@@ -4,6 +4,7 @@
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/.idea/artifacts" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />

View File

@@ -8,8 +8,8 @@ public class Test {
goldCard.deposit(1000);
pay(goldCard);
SilverCard silverCard = new SilverCard("654321", "李四", 123456789, 5000);
pay(silverCard);
// SilverCard silverCard = new SilverCard("654321", "李四", 123456789, 5000);
// pay(silverCard);
}
public static void pay(Card c){
System.out.println("请刷卡,请输入您的消费金额:");

11
src/class25/A.java Normal file
View File

@@ -0,0 +1,11 @@
package class25;
import lombok.Getter;
public class A {
//单例类
@Getter
private static final A a = new A();
private A(){}
}

13
src/class25/B.java Normal file
View File

@@ -0,0 +1,13 @@
package class25;
public class B {
private static B b;
private B() {
}
public static B getInstance() {
if (b == null) {
b = new B();
}
return b;
}
}

19
src/class25/Test.java Normal file
View File

@@ -0,0 +1,19 @@
package class25;
public class Test {
public static void main(String[] args) {
A a = A.getA();
A a2 = A.getA();
System.out.println(a==a2);
System.out.println(a.hashCode());
System.out.println(a2.hashCode());
System.out.println("================");
B b = B.getInstance();
B b1 = B.getInstance();
System.out.println(b==b1);
System.out.println(b.hashCode());
System.out.println(b1.hashCode());
}
}