设计模式—“对象性能”

Posted PaQiuQiu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式—“对象性能”相关的知识,希望对你有一定的参考价值。

面向对象很好地解决了“抽象”的问题,但是必不可免地要付出一定的代价。对于通常情况来讲,面向对象的成本大都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。

典型模式有:SingletonFlyweight

一、Flyweight

运用共享技术将大量细粒度的对象进项复用,并且提供一个 享元池 ,最后通过享元工厂类将享元对象提供给客户端使用,核心其实就是 享元池,用户需要对象时,首先从享元池中获取,如果享元池中不存在,则创建一个新的享元对象返回给用户,并在享元池中保存该新增对象。

动机

在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行时代价——主要指内存需求方面的代价。

如何在避免大量细粒度对象问题的同时,让外部客户程序仍然能够透明地使用面向对象的方式来进行操作?

模式定义

运用共享技术有效地支持大量细粒度的对象。

​ ——《设计模式》GoF

结构

以上是关于设计模式—“对象性能”的主要内容,如果未能解决你的问题,请参考以下文章

23种设计模式——享元模式对象性能

23种设计模式——单例模式对象性能

原创不如山寨——原型模式详解

设计模式-原型模式

java设计模式——原型模式

《设计模式之禅》之原型模式