我们知道,奥迪A6汽车有很多种不同的地方,比如讲可能颜色,动力等的不一样,但是往往同为奥迪A6的汽车,他们的高度、宽度、长度都是一样的。现在如果我们系统中会涉及到这些汽车,如果我们没一个对象(奥迪A6)的成员变量里面都有高度、宽度、长度,那么在内存中就存在了大量的重复的数据,必然浪费了内存空间,现在如果我们可以把这些相同的数据放到一个对象里面,比如叫做CarData,而在每辆汽车里面有个CarData,这样就可以避免掉了浪费内存空间,并且还可以很容易的更改里面的数据,这就是享元模式,其中的CarData的实例就是一个享元。
享元模式例子:
Java代码复制代码
- /**
- * 享元
- * @author--http://www.lookhan.com
- *
- */
- public class CarData {
- private int height;
- private int width;
- private int length;
- public int getHeight() {
- return height;
- }
- public void setHeight(int height) {
- this.height = height;
- }
- public int getWidth() {
- return width;
- }
- public void setWidth(int width) {
- this.width = width;
- }
- public int getLength() {
- return length;
- }
- public void setLength(int length) {
- this.length = length;
- }
- }
- public class AoDiOne {
- CarData carData;
- String color;
- double power;
- }
- public class AoDiTwo {
- CarData carData;
- String color;
- double power;
- }
发表评论
-
华为账号
2013-05-18 09:53 0华为账号:dKF76008 yulong_deng1 -
用js获取后台返回的List对象
2013-05-17 10:59 1750function getEquimentType(){ ... -
cc222
2013-03-29 18:16 0dfdf -
spring与ibatis继承
2012-12-22 15:59 01.applicationContext.xml: & ... -
我参与的敏捷开发3
2012-12-22 15:45 0软件工程师(软件项目迭代开发): 概 ... -
我参与的敏捷开发2
2012-12-22 15:23 0系统工程师(SE): 概念阶段TR1: ... -
我参与的敏捷开发1
2012-12-22 12:18 0敏捷软件开发流程: 项目开始 -> 需求分 ... -
某设计项目功能
2012-12-21 16:24 0IDS1000(集群); 箱体选型 ... -
MySQL-Front.exe
2012-12-21 15:57 806mysql数据库MySQL-Front.exe -
mysql软件
2012-12-03 09:52 1126mysql软件:MySQL-Front -
如何判断一个点是否在不规则图形内部?
2012-09-26 09:46 6023网上查了下,有办法是说连接目标点与各顶点,然后算夹角,加起来为 ... -
技术随想
2012-08-31 09:51 788技术好比分为 内功和外功,外功只是体现在在应用方面,也就是技术 ... -
几年工作应该具有的
2012-08-31 09:31 830我们不需要熟练工,我们需要在某领域拥有超过常人的积累认知, ... -
比较好用的截图软件并且可标注
2012-08-30 09:50 745Greenshot -
补发新概念,织一片头发补在脱发处
2012-08-29 10:00 0如何治疗脱发已经成为一个世界性难题,继药物治疗、植发手 ... -
值得看下脱发的网站
2012-08-29 09:52 0本人有一味祖传秘方专治脱发生发的药,纯中药制做.效果迅速有效. ... -
poi数据有效性(下拉列表)
2012-08-28 12:14 3168版本poi3.8 public class Test ... -
随想2
2012-08-24 10:42 759文凭能代表什么,它代表的只是过去,不能代表将来,既然是过去了的 ... -
何为面向对象,能谈谈自己的理解么?
2012-08-21 09:12 718何为面向对象,能谈谈自己的理解么? -
总结语言
2012-07-12 09:08 8271.每天都要学会思考 分析 总结
相关推荐
本文实例讲述了javascript 设计模式之享元模式。分享给大家供大家参考,具体如下: 享元模式说明 定义:用于解决一个系统大量细粒度对象的共享问题: 关健词:分离跟共享; 说明: 享元模式分单纯(共享)享元模式,...
享元模式是软件设计模式中的一种结构型模式,它的核心思想是通过共享已经存在的对象来减少内存中的对象数量,从而提高系统性能。在Java中,享元模式常用于处理大量相似对象的场景,例如在图形界面中绘制大量相似的...
享元模式(Flyweight Pattern)是一种结构型设计模式,用于减少创建大量小对象所带来的内存开销。通过共享对象,享元模式能够有效地支持大量细粒度的对象,减少内存使用并提高性能。它常用于需要大量重复对象的场景...
享元模式是软件设计模式中的一种结构型模式,它的主要目的是减少对象的创建,从而提高系统性能,尤其是在处理大量相似对象时。享元模式通过共享技术来支持大量细粒度对象的复用,将享元对象的状态分为内蕴状态(不可...
享元模式是一种设计模式,它的主要目的是减少内存中对象的数量,通过共享机制来提高性能,特别是在处理大量具有相同或相似状态的对象时。享元模式的核心思想是区分对象的内部状态(intrinsic state)和外部状态...
享元模式是一种面向对象的设计模式,它通过共享技术来减少对象的创建,从而提高系统性能。在Java中,享元模式的一个典型应用是Integer类的缓存机制。当我们创建两个数值相同的Integer对象时,比如Integer i1 = new ...
C++设计模式之享元模式(Flyweight)是一种结构型设计模式,主要用于解决大量相似对象的创建和操作所带来的内存负载问题。该模式的主要设计目标是通过共享对象来减少内存负载,提高系统的性能。 享元模式顾名思义...
享元模式是一种软件设计模式,它的主要目的是为了提高性能,减少对象的创建,尤其是在大量相似对象需要被创建的情况下。在给定的咖啡店案例中,享元模式的应用可以帮助优化内存使用,避免为每杯咖啡的配料表分配独立...
本文实例讲述了Python设计模式之享元模式原理与用法。分享给大家供大家参考,具体如下: 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度的对象. 下面是一个享元模式的demo: #!/usr/bin/env python...
享元模式是软件设计模式中的一种结构型模式,它的主要目的是通过共享大量细粒度对象来减少内存的使用,提高系统性能。在许多场景下,尤其是处理大量相似对象时,享元模式能显著减少内存开销。这个压缩包文件...
本文实例讲述了JavaScript设计模式之享元模式。分享给大家供大家参考,具体如下: 通过两个例子的对比来凸显享元模式的特点:享元模式是一个为了提高性能(空间复杂度)的设计模式,享元模式可以避免大量非常相似类的...
主要介绍了Java设计模式之享元模式,结合实例形式详细分析了享元模式的概念、功能、定义及使用方法,需要的朋友可以参考下
### C++设计模式之享元模式详解 #### 一、享元模式概述 享元模式(Flyweight Pattern)是设计模式中的一种优化模式,主要用于减少创建大量相似对象所需的内存消耗。在C++程序设计中,当系统中存在大量的相同或相似...