dar*_*sky 6 java flyweight-pattern
我正在尝试用Java创建一个flyweight对象.我在Objective-C中使用了类似的概念(Objective-C中的Singleton类//我相信它们是相同的东西).
我想在网上找到一个教程或一个例子或解释,以了解如何创建一个flyweight对象并使用它,但我在谷歌上搜索,我找不到任何血统.我浏览了10页,他们基本上都是从一个网站抄袭,这个网站只是解释了这个概念.我理解这个概念 - 我需要一些东西来帮助我/教我如何用Java实现它.
任何人都有任何建议/教程?
谢谢!
蝇量模式的维基百科条目一个具体的 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!");
}
Run Code Online (Sandbox Code Playgroud)