Part II
关于对象的缓存问题,今天老师提出了一个方案,先把今天展示的方案的代码贴出来:
1: import java.util.HashMap;
2: import java.util.Map;
3:
4: public class Grade {
5:
6: private static Map<String, Grade> map = new HashMap<String, Grade>();
7:
8: private String name;
9:
10: private Grade(String name) {
11: this.name = name;
12: }
13:
14: public static Grade getInstance(String name) {
15: if (map.containsKey(name)) {
16: return map.get(name);
17: }
18: Grade grade = new Grade(name);
19: map.put(name, grade);
20: return grade;
21: }
22:
23: }
1: public class GradeTester {
2:
3: public static void main(String[] args) {
4: Grade grade1 = Grade.getInstance("A");
5: Grade grade2 = Grade.getInstance("B");
6: Grade grade3 = Grade.getInstance("A");
7:
8: // 结果为false,证明grade1和grade3是不同的实例对象
9: System.out.println(grade1 == grade2);
10: // 结果为true,证明grade1和grade3是同一个实例对象
11: System.out.println(grade1 == grade3);
12: }
13:
14: }
上述代码可以看出,我们已经可以把A这个等级所对应的实例对象取出来,而并不会产生两个等级相同的实例对象,这样的好处就是在同一个运行环境中只存在一个name为A的实例对象,避免重复创建相同作用的对象,减少内存开销。
分享到:
相关推荐
在设计模式中对Builder模式的定义是用于构建复杂对象的...其中使用Builder模式来替代多参数构造函数是一个比较好的实践法则。 我们常常会面临编写一个这样的实现类(假设类名叫DoDoContact),这个类拥有多个构造函数,
在Java中,Builder模式通常包含四个主要角色:Product(产品),Builder(建造者),ConcreteBuilder(具体建造者)和Director(导演)。Product是被构建的对象,Builder定义了产品的构造接口,ConcreteBuilder实现...
在Builder模式中,有四个主要角色: 1. Product(产品):定义了被构建对象的接口或类,Builder模式创建的产品对象。 2. Builder(抽象建造者):为创建一个Product对象的各个部分指定接口。它声明了构建产品对象的...
在 Java 开发中,Builder 模式是一种强大的创建型模式,它允许我们逐步构建复杂的对象。本文将详细介绍 Builder 模式的意图、解释、编程示例、适用场景以及实际应用。同时,还将提供示例代码的下载链接,方便读者...
【Java面试题】builder模式
在Java中,Builder模式通常用来处理那些具有大量可选参数的对象,避免了使用长参数列表或者复杂的构造函数。 在Java 8之前,Builder模式的实现通常涉及以下步骤: 1. 定义一个`Order`类,包含多个属性如`code`、`...
在Java中,Builder模式的一个经典例子是`java.util.StringBuilder`和`java.lang.StringBuffer`,它们提供了链式操作的方法来构建字符串,如`append()`,`insert()`等,这样用户可以逐步添加内容,而无需一次性提供...
—— Effective Java,第二版,第39页背景在 Java 中实现 Builder 模式容易出错和重复。即使是一个简单的四字段类,最基本的构建器 API 需要 39 行代码,如果你不使用像 AutoValue 这样的实用程序来生成值样板,则...
Java Builder模式是一种设计模式,它在对象构建过程中提供了一种灵活的方式来组合对象的各个部分,使得代码更加清晰、易于维护。在"Java Builder 模式之贷款办理"这个主题中,我们可以深入理解如何利用Builder模式来...
在Java或者其他面向对象编程语言中,Builder模式经常被用来提高代码的可读性和可维护性。 Builder模式的核心包括四个角色:Product(产品类)、ConcreteBuilder(具体建造者)、Builder(抽象建造者)和Director...
Java中的23种设计模式是软件工程中非常重要的概念,它们是解决常见编程问题的成熟解决方案,被广泛应用于各种复杂的软件系统中。这些模式在不同的上下文中提供了可重用的结构和行为,使得代码更加清晰、可维护和扩展...
在PowerBuilder中,我们可以创建一个动态链接库(DLL),这个DLL使用JNI来调用Java类。首先,我们需要在Java中定义一个本地方法接口,然后在C/C++(通常用于创建DLL)中实现这个接口,最后在PowerBuilder中调用这个DLL...
在 Java 中,可以使用静态内部类来实现 Builder 模式。在上面的示例代码中,我们可以看到,MapBuilder 和 ListBuilder 都是使用静态内部类来实现的。Builder 类负责构建 Map 或 List 对象,而 MapBuilder 和 ...
在Java编程中,FreeBuilder是一个自动化工具,它可以帮助开发者为Java 1.6及更高版本的类自动生成Builder模式的实现。这个工具极大地简化了代码的编写,避免了手动创建和维护复杂的构造函数或工厂方法。 Builder...
"Java设计中的Builder模式介绍" 在 Java 设计模式中,Builder 模式是一种常用的设计模式,它可以将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。今天,我们将通过一个 Person 例子来...
此外,Builder模式在Java标准库中也有广泛应用,例如`StringBuilder`和`StringBuffer`,它们用于构建字符串,提供了一种高效且可控制的字符串构建方式。 在实际开发中,Builder模式常用于创建复杂的对象,如XML文档...
在Java编程中,Builder模式提供了一种更加灵活、结构化的创建对象的方式,避免了构造函数的过度膨胀和JavaBean属性设置的繁琐。下面我们将深入探讨Builder模式的核心概念、工作原理以及如何在实际开发中应用。 首先...
**建造者模式(Builder Pattern)**是软件设计模式中的一种,属于创建型模式。它将复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式通常用于那些需要大量构造参数的对象,通过...
在Java编程中,Builder模式尤其适用于那些具有大量可选参数的对象创建。 在提供的代码示例中,我们看到了两种常见的创建对象的方式: 1. **构造函数链式调用**: 这种方法通过创建一系列的构造函数,每个构造函数...
在Java或其他编程语言中,Builder模式通常用于创建那些具有多种配置选项的对象,使得构造过程更加灵活且易于维护。 Builder模式的主要角色包括: 1. 产品(Product):这是要创建的复杂对象。 2. 抽象建造者...