public class Flyweight {
class FlyweightFactory {
Hashtable<String, FlyWeight> pool = new Hashtable<String, FlyWeight>();
public void addFlyWeight(String key, FlyWeight value) {
pool.put(key, value);
}
//其实就是一个池的维护,在创建新对象时,又涉及到工厂模式创建新对象
public FlyWeight getFlyWeight(String key) {
FlyWeight fw = pool.get(key);
if (null == fw) {
fw = new ConcreteFlyWeight("pool instance key is " + key);
pool.put(key, fw);
}
return fw;
}
}
interface FlyWeight {
public void print();
}
//共享类
class ConcreteFlyWeight implements FlyWeight {
String param;
public ConcreteFlyWeight(String param) {
this.param = param;
}
public void print() {
System.out.println("flyweight..." + param);
}
}
//不被共享的类
class UnConcreteFlyWeight implements FlyWeight {
public void print() {
}
}
public static void main(String[] args) {
Flyweight fw = new Flyweight();
FlyweightFactory fwf = fw.new FlyweightFactory();
fwf.addFlyWeight("key1", fw.new ConcreteFlyWeight("key1 flyweight..."));
fwf.addFlyWeight("key2", fw.new ConcreteFlyWeight("key2 flyweight..."));
fwf.getFlyWeight("key1").print();
fwf.getFlyWeight("key2").print();
fwf.getFlyWeight("key3").print();
}
}
//http://zuoqiang.iteye.com/blog/743962
分享到:
相关推荐
享元模式(Flyweight Pattern)是一种结构型设计模式,用于减少创建大量小对象所带来的内存开销。通过共享对象,享元模式能够有效地支持大量细粒度的对象,减少内存使用并提高性能。它常用于需要大量重复对象的场景...
本文将深入探讨“轻量级”设计模式之一——Flyweight(享元)模式,它是如何在减少内存消耗的同时提高系统性能的。 Flyweight模式的核心思想是共享对象,通过复用大量相似对象来减少内存占用。这种模式通常在处理...
享元模式是设计模式中的一种结构型模式,它主要通过共享已有对象来减少内存中对象的数量,从而提高系统性能。在C#编程中,享元模式尤其适用于那些创建大量相似对象且内存消耗较大的场景。本篇文章将深入探讨享元模式...
"Flyweight"(享元)设计模式是一种结构型模式,其核心目的是为了有效地支持大量细粒度对象的创建和使用,通过共享已经存在的对象来减少内存消耗,提高系统性能。在C#中,Flyweight模式尤其适用于那些内部状态可共享...
C++设计模式之享元模式(Flyweight) C++设计模式之享元模式(Flyweight)是一种结构型设计模式,主要用于解决大量相似对象的创建和操作所带来的内存负载问题。该模式的主要设计目标是通过共享对象来减少内存负载,...
享元模式(Flyweight Pattern)是一种结构型设计模式,它能有效地减少系统中对象的数量,从而降低内存消耗,提高性能。这种模式通过共享大量相似对象的内部状态来达到这一目标,而只保留对象的外部状态在外部管理。...
享元模式(Flyweight Pattern)是软件设计中的一种结构型设计模式,它通过共享技术来支持大量细粒度的对象,以此来降低内存中对象的数量。在PHP中实现享元模式,可以帮助我们优化程序性能,特别是在对象数目过多时,...
### C++设计模式之享元模式详解 #### 一、享元模式概述 享元模式(Flyweight Pattern)是设计模式中的一种优化模式,主要用于减少创建大量相似对象所需的内存消耗。在C++程序设计中,当系统中存在大量的相同或相似...
享元模式是软件设计模式中的一种结构型模式,它的主要目的是为了提高性能,尤其是在大量对象创建时。享元模式通过共享已有对象来减少内存中对象的数量,从而达到降低内存消耗的效果。这种模式适用于那些轻量级对象,...
享元模式是一种设计模式,属于构造型模式,其主要目的是减少对象的数量,通过共享大量相似对象的内部状态来节省内存。这种模式在处理大量细粒度对象时特别有用,能够有效地提高系统的性能。 享元模式的核心是...
享元模式是软件设计模式中的一种结构型模式,它的核心思想是通过共享已经存在的对象来减少内存中的对象数量,从而提高系统性能。在Java中,享元模式常用于处理大量相似对象的场景,例如在图形界面中绘制大量相似的...
享元模式是软件设计模式中的一种结构型模式,它的主要目的是通过共享大量细粒度对象来减少内存的使用,提高系统性能。在许多场景下,尤其是处理大量相似对象时,享元模式能显著减少内存开销。这个压缩包文件...
在这个“C#面向对象设计模式纵横谈(12)”中,我们将深入探讨享元模式的概念、实现方式以及如何在实际项目中应用。 享元模式的核心思想是区分对象的状态和行为。状态分为内部状态和外部状态,其中内部状态是对象共有...
享元模式是软件设计模式中的一种结构型模式,它的主要目的是减少对象的创建,从而提高系统性能,尤其是在处理大量相似对象时。享元模式通过共享技术来支持大量细粒度对象的复用,将享元对象的状态分为内蕴状态(不可...
设计模式-享元模式 设计模式是软件设计中的一种解决方案,旨在提高代码的可维护性、灵活性和可重用性。享元模式(Flyweight Pattern)是结构型模式的一种,主要用于减少大量相似对象的内存占用,提高系统的性能和...
设计模式之Flyweight(享元) 行为模式: 设计模式之Template 设计模式之Memento(备忘机制) 设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计模式之Strategy...
享元模式是一种设计模式,属于对象结构型模式,它的核心思想是通过共享大量细粒度对象来减少系统内存的使用,提高系统性能。在软件工程中,当系统中存在大量相似对象时,享元模式可以有效地减少内存开销,尤其在处理...