今天看了板桥里人的《设计模式之Flyweight(享元) FlyWeight模式
》一文,发现其中的理解有些偏差,因此在这里谈一谈自己的看法。
Flyweight的目的是为了减少内存的消耗而出现的一种模式。因此他是一种解决实现问题的模式,而不是用来解决建模问题的。
在文章的例子中说class CD是接口 Flyweight,而class Artist是ConcreteFlyweight。那就完全错了。
按照Flyweight模式,Flyweight和ConcreteFlyweight是继承关系。
而文中却成了聚合关系。
Flyweight模式中,最重要的是将对象分解成extrinsic和intrinsic两部分
在Flyweight Interface中,应该是和context有关的操作,而在例子中,看不到任何和context有关的操作。
可
见作者是将flyweight模式和object pool等同起来了。但实际上两者是由本质区别的。object
pool中的对象并没有extrinsic,也不知道context的存在。比如最常见的string
pool。pool中的string可以用在任何地方。
希望板桥里人先生本着对读者负责的精神,能够修改上文。
以上。
[该贴被oxygen于2007年05月28日 19:40修改过]
Flyweight是为解决包含相同信息多个实例反复创建的性能开销,是一个提高性能的模式,常见EJB等J2EE中使用的Object Cache和Object Pool都属于这种Flyweight具体应用表现。
相关推荐
在C#中,Flyweight模式尤其适用于那些内部状态可共享、外部状态可变的对象场景。 享元模式通常包含以下关键角色: 1. **享元接口(Flyweight Interface)**:定义了客户程序与享元对象交互的接口,规定了享元对象能...
《软件模式之Flyweight模式》 Flyweight模式是一种设计模式,其主要目的是通过共享技术来减少内存中对象的数量,从而优化内存使用效率。在对象数量庞大且大部分状态可以外部化的情况下,Flyweight模式尤其适用。它...
6共享元模式(Flyweight) 用意:以共享的方式高效地支持大量的细粒度对象
本文将深入探讨“轻量级”设计模式之一——Flyweight(享元)模式,它是如何在减少内存消耗的同时提高系统性能的。 Flyweight模式的核心思想是共享对象,通过复用大量相似对象来减少内存占用。这种模式通常在处理...
软件模式之Flyweight模式.doc
**C++ Flyweight模式** Flyweight模式是一种设计模式,属于结构型模式的一种,它主要解决的是在大量对象创建时可能导致的内存消耗问题。在计算机科学中,尤其是编程领域,内存管理是一个关键的话题,Flyweight模式...
Java设计模式中的Flyweight模式是一种结构型设计模式,其主要目标是减少对象的创建,通过共享相似对象来降低内存使用和提高性能。在面向对象编程中,如果对象数量过多,可能会导致内存消耗过大,尤其是在处理大量...
Java设计模式中的Flyweight模式是一种结构型模式,其主要目的是减少对象的数量,通过共享大量具有相似属性的对象来节省内存和提高性能。Flyweight模式的核心思想是区分对象的内部状态(intrinsic state)和外部状态...
享元模式(Flyweight Pattern)是一种结构型设计模式,用于减少创建大量小对象所带来的内存开销。通过共享对象,享元模式能够有效地支持大量细粒度的对象,减少内存使用并提高性能。它常用于需要大量重复对象的场景...
享元模式是设计模式中的一种结构型模式,它主要通过共享已有对象来减少内存中对象的数量,从而提高系统性能。在C#编程中,享元模式尤其适用于那些创建大量相似对象且内存消耗较大的场景。本篇文章将深入探讨享元模式...
享元模式(Flyweight Pattern)是一种结构型设计模式,它能有效地减少系统中对象的数量,从而降低内存消耗,提高性能。这种模式通过共享大量相似对象的内部状态来达到这一目标,而只保留对象的外部状态在外部管理。...
C++设计模式之享元模式(Flyweight) C++设计模式之享元模式(Flyweight)是一种结构型设计模式,主要用于解决大量相似对象的创建和操作所带来的内存负载问题。该模式的主要设计目标是通过共享对象来减少内存负载,...
享元模式是编程中常用的设计模式之一,特别是在处理大型系统和资源有限的环境中。通过对对象的内部状态和外部状态进行区分,并共享内部状态,我们能够提高系统的性能和降低内存使用。同时,理解享元模式与其他设计...
享元模式是一种设计模式,主要用于减少对象的创建,从而提高性能和降低内存占用。在C++编程中,享元模式的应用能够帮助优化内存管理和提高程序效率。享元模式的核心思想是区分对象的内部状态(intrinsic state)和...
享元模式的核心是Flyweight类,它是需要被共享的对象,通常包含两个部分:内在状态(Intrinsic State)和外在状态(Extrinsic State)。内在状态是指对象内部不变的部分,可以在多个对象之间共享;外在状态是随环境...
飞重量(Flyweight)设计模式是一种结构型设计模式,它旨在减少对象的创建,从而节约内存,提高系统性能。在面向对象编程中,当大量相似对象的创建导致资源消耗过大时,飞重量模式就能派上用场。这个模式通过共享...
享元模式是面向对象设计中的一种结构型模式,它的主要目的是通过共享大量相似对象来减少内存的使用,提高系统的性能。在C#编程语言中,我们可以利用享元模式来优化那些具有大量实例但大部分状态可以共享的对象。在这...
### C++设计模式之享元模式详解 #### 一、享元模式概述 享元模式(Flyweight Pattern)是设计模式中的一种优化模式,主要用于减少创建大量相似对象所需的内存消耗。在C++程序设计中,当系统中存在大量的相同或相似...
C#面向对象设计模式纵横谈(12):Flyweight 享元模式(结构型模式)