Flyweight 直译为蝇量。就其表示的模式来说,翻译成享元,确实是不错的package designpattern.structure.flyweight;public interface Flyweight { void action(int arg);}package designpa...
分类:
其他好文 时间:
2014-08-17 01:03:51
阅读次数:
187
第6章 精灵精灵(sprite),它是一种可以集成入动画之中的图像对象,赋予它们各种行为,精灵并非Canvas API的一部分,,但都是从它衍生而来本章将会实现三种设计模式:策略模式(精灵与绘制器解耦)、命令模式(精灵的动作)、享元模式(一个实例表示多个精灵)painter属性是一个指向Painte...
分类:
Web程序 时间:
2014-08-16 02:15:09
阅读次数:
267
享元模式(Flyweight):运用共享技术有效地支持大量细粒度的对象。
(1),享元模式可以避免大量非常相似的开销。在程序设计中,有时需要生成大量细粒度的类实例来表示数据。如果能发现这些实例除了几个参数外基本上都是相同的,有时就能大幅度地减少需要实例化的类的数量。如果能把这些参数移到类的外面,在方法调用时将他们传递进来,就可以通过共享大幅度减少实例的数目。
(2),如果一个应用使用了大量的对...
分类:
编程语言 时间:
2014-08-15 00:02:06
阅读次数:
218
说明:相对于其它模式,Flyweight模式在PHP实现似乎没有太大的意义,因为PHP的生命周期就在一个请求,请求执行完了,php占用的资源都被释放。我们只是为了学习而简单做了介绍。1. 概述面向对象技术可以很好地解决系统一些灵活性或可扩展性或抽象性的问题,但在很多情况下需要在系统中增加类和对象的个...
分类:
其他好文 时间:
2014-08-03 12:32:25
阅读次数:
286
享元模式(Flyweight)主要体现在“享”上,即共享。设想这么一种情况,现在有编号为A、B三栋房子,现在外面有9只大熊过来了,编号为1~9。现在规定,编号为1~3的熊只能居住在编号为A的房子中,编号为4~6的大熊只能居住在编号为B的大熊中,编号为7~9的大熊只能居住在编号为C的房子中。加入大熊非常笨,没有受过教育,它们只知道自己住的房子的编号。之所以大熊笨,是因为它们一来就建房子,然后在所建的房子墙上写上自己对应的住房编号。这样到最后的结果必然是:建造了9栋房子,3栋编号为A的房子、3栋编号为B的房子、...
分类:
编程语言 时间:
2014-07-22 22:39:54
阅读次数:
250
设计模式的另一大类型为结构型。共收录了7个模式,分别为适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式。下面从特点和使用两方面小探,欢迎交流!
适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。[大话设计模式]
特点:需要交流的两方,在数据和行...
分类:
其他好文 时间:
2014-07-15 22:17:45
阅读次数:
241
(十一)合成模式 Composite
合成模式是一组对象的组合,这些对象可以是容器对象,也可以是单对象。组对象允许包含单对象,也可以包含其他组对象,要为组合对象和单对象定义共同的行为。合成模式的意义是 保证客户端调用单对象与组合对象的一致性。
(十二) 享元模式 Flyweight
享元模式的主要目的是实现对象的共享,当系统中存在大量对象的时候减少内存开销,通常与工厂模式一同使用。一个客户端请求时候,工厂检查当前对象池是否存在可用的对象,有就返回已经存在的对象。没有就创建一个新对象。数据库连接池就是最典型的...
分类:
编程语言 时间:
2014-07-12 22:01:19
阅读次数:
466
本文介绍7种结构型模式里的剩下两种:享元模式、代理模式。一、享元模式FlyWeight 享元模式比较简单且重要,在很多场合都被用到,只不过封装起来了用户看不到。其概念:运用共享内存技术最大限度的支持大量细粒度的对象。这个概念给的有些抽象,说白了就是如果内存中存在某个对象A,如果再次需要使用对象A的时候如果内存中有A这个对象就直接使用它,不要再次new了。如果没有,则重新new一个。基于这个特点,享...
分类:
编程语言 时间:
2014-07-12 17:27:16
阅读次数:
180
结构型模式包括7种:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式。本文主要介绍适配器模式和桥接模式。一、适配器模式(Adapter) 适配器模式其实很简单,就像手机充电器一样,手机需要5V的,而插座出来是220V。因此需要充电器变压就ok。再比如,一个之会说汉语的和一个只会说英语的无法沟通,那就中间请个翻译。所有的交流通过翻译,翻译翻给会说英语的,就能完成一次单项交流的。...
分类:
编程语言 时间:
2014-07-09 11:16:23
阅读次数:
192