gpt4 book ai didi

java - Java 享元示例

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:18:54 26 4
gpt4 key购买 nike

我正在尝试用 Java 创建享元对象。我在 Objective-C 中使用过类似的概念(Objective-C 中的单例类//我相信它们是同一回事)。

我试图在网上找到教程或示例或解释,以了解如何创建享元对象并使用它,但我在 Google 上搜索过,但找不到任何相关内容。我浏览了 10 页,它们基本上都是从一个解释这个概念的网站上抄袭的。我理解这个概念 - 我需要一些东西来帮助我/教我如何用 Java 实现它。

有人有任何建议/教程吗?

谢谢!

最佳答案

Wikipedia entry for the flyweight pattern有一个具体的 Java 示例。

编辑以尝试帮助 OP 理解模式:

正如我在下面的评论中所指出的,享元模式的要点是您共享某个事物的单个实例,而不是创建新的、相同的对象。

使用 Wiki 示例,CoffeeFlavorFactory 只会创建任何给定 CoffeeFlavor 的单个实例(这是在第一次请求 Flavor 时完成的)。对相同风格的后续请求返回对原始单个实例的引用。

public static void main(String[] args) 
{
flavorFactory = new CoffeeFlavorFactory();
CoffeeFlavor a = flavorFactory.getCoffeeFlavor("espresso");
CoffeeFlavor b = flavorFactory.getCoffeeFlavor("espresso");
CoffeeFlavor c = flavorFactory.getCoffeeFlavor("espresso");

// This is comparing the reference value, not the contents of the objects
if (a == b && b == c)
System.out.println("I have three references to the same object!");
}

关于java - Java 享元示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7563435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com