`

Java中Builder模式的使用 下

阅读更多

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模式在Java中的应用

    在设计模式中对Builder模式的定义是用于构建复杂对象的...其中使用Builder模式来替代多参数构造函数是一个比较好的实践法则。 我们常常会面临编写一个这样的实现类(假设类名叫DoDoContact),这个类拥有多个构造函数,

    设计模式-Builder模式demo

    在Java中,Builder模式通常包含四个主要角色:Product(产品),Builder(建造者),ConcreteBuilder(具体建造者)和Director(导演)。Product是被构建的对象,Builder定义了产品的构造接口,ConcreteBuilder实现...

    23种设计模式的java实现-Builder

    在Builder模式中,有四个主要角色: 1. Product(产品):定义了被构建对象的接口或类,Builder模式创建的产品对象。 2. Builder(抽象建造者):为创建一个Product对象的各个部分指定接口。它声明了构建产品对象的...

    【Java 设计模式-源码】Builder 模式:在 Java 中清晰构建自定义对象

    在 Java 开发中,Builder 模式是一种强大的创建型模式,它允许我们逐步构建复杂的对象。本文将详细介绍 Builder 模式的意图、解释、编程示例、适用场景以及实际应用。同时,还将提供示例代码的下载链接,方便读者...

    【Java面试题】builder模式

    【Java面试题】builder模式

    Java中Builder模式的实现详解

    在Java中,Builder模式通常用来处理那些具有大量可选参数的对象,避免了使用长参数列表或者复杂的构造函数。 在Java 8之前,Builder模式的实现通常涉及以下步骤: 1. 定义一个`Order`类,包含多个属性如`code`、`...

    (创建型模式)Builder模式

    在Java中,Builder模式的一个经典例子是`java.util.StringBuilder`和`java.lang.StringBuffer`,它们提供了链式操作的方法来构建字符串,如`append()`,`insert()`等,这样用户可以逐步添加内容,而无需一次性提供...

    Java的Builder模式生成器FreeBuilder.zip

    —— Effective Java,第二版,第39页背景在 Java 中实现 Builder 模式容易出错和重复。即使是一个简单的四字段类,最基本的构建器 API 需要 39 行代码,如果你不使用像 AutoValue 这样的实用程序来生成值样板,则...

    java builder 模式之贷款办理

    Java Builder模式是一种设计模式,它在对象构建过程中提供了一种灵活的方式来组合对象的各个部分,使得代码更加清晰、易于维护。在"Java Builder 模式之贷款办理"这个主题中,我们可以深入理解如何利用Builder模式来...

    builder设计模式源码

    在Java或者其他面向对象编程语言中,Builder模式经常被用来提高代码的可读性和可维护性。 Builder模式的核心包括四个角色:Product(产品类)、ConcreteBuilder(具体建造者)、Builder(抽象建造者)和Director...

    java23中设计模式详解

    Java中的23种设计模式是软件工程中非常重要的概念,它们是解决常见编程问题的成熟解决方案,被广泛应用于各种复杂的软件系统中。这些模式在不同的上下文中提供了可重用的结构和行为,使得代码更加清晰、可维护和扩展...

    powerbuilder_call_java

    在PowerBuilder中,我们可以创建一个动态链接库(DLL),这个DLL使用JNI来调用Java类。首先,我们需要在Java中定义一个本地方法接口,然后在C/C++(通常用于创建DLL)中实现这个接口,最后在PowerBuilder中调用这个DLL...

    Java Builder模式构建MAP/LIST的实例讲解

    在 Java 中,可以使用静态内部类来实现 Builder 模式。在上面的示例代码中,我们可以看到,MapBuilder 和 ListBuilder 都是使用静态内部类来实现的。Builder 类负责构建 Map 或 List 对象,而 MapBuilder 和 ...

    FreeBuilder为Java1.6 自动生成 Builder模式

    在Java编程中,FreeBuilder是一个自动化工具,它可以帮助开发者为Java 1.6及更高版本的类自动生成Builder模式的实现。这个工具极大地简化了代码的编写,避免了手动创建和维护复杂的构造函数或工厂方法。 Builder...

    Java设计中的Builder模式的介绍

    "Java设计中的Builder模式介绍" 在 Java 设计模式中,Builder 模式是一种常用的设计模式,它可以将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。今天,我们将通过一个 Person 例子来...

    创建型——Builder模式

    此外,Builder模式在Java标准库中也有广泛应用,例如`StringBuilder`和`StringBuffer`,它们用于构建字符串,提供了一种高效且可控制的字符串构建方式。 在实际开发中,Builder模式常用于创建复杂的对象,如XML文档...

    Java设计模式:Builder模式应用案例[整理].pdf

    在Java编程中,Builder模式提供了一种更加灵活、结构化的创建对象的方式,避免了构造函数的过度膨胀和JavaBean属性设置的繁琐。下面我们将深入探讨Builder模式的核心概念、工作原理以及如何在实际开发中应用。 首先...

    设计模式之建造者Builder模式

    **建造者模式(Builder Pattern)**是软件设计模式中的一种,属于创建型模式。它将复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式通常用于那些需要大量构造参数的对象,通过...

    Java设计模式:Builder模式应用案例[借鉴].pdf

    在Java编程中,Builder模式尤其适用于那些具有大量可选参数的对象创建。 在提供的代码示例中,我们看到了两种常见的创建对象的方式: 1. **构造函数链式调用**: 这种方法通过创建一系列的构造函数,每个构造函数...

    (设计模式)Builder

    在Java或其他编程语言中,Builder模式通常用于创建那些具有多种配置选项的对象,使得构造过程更加灵活且易于维护。 Builder模式的主要角色包括: 1. 产品(Product):这是要创建的复杂对象。 2. 抽象建造者...

Global site tag (gtag.js) - Google Analytics