Flyweight设计模式


先做个比方:一个停车场有1000辆车子,每辆车子都是一个对象,每个对象实例占用内存0.1M,那么总共点用100M;如果数量再多些10000,100000...系统内存很容易消耗完.我们可以看出这么车子有很多是相同的,那么是否可以用共享的方式来减少实例的数量呢?答案是肯定的,于是FlyWeight方式应蕴而生.
Flyweight模式的几个要点:

1、面向对象很好的解决了抽象性的问题,但是作为一个运行在机器中的程序实体,我们需要考虑对象的代价问题。Flyweight设计模式主要解决面向对象的代价问题,一般不触及面向对象的抽象性问题。

2Flyweight采用对象共享的做法来降低系统中对象的个数,从而降低细粒度对象给系统带来的内存压力。在具体实现方面,要注意对象的状态处理。

3、对象的数量太大从而导致对象内存开销加大(这个数量要经过评估,而不能凭空臆断)

From:捕鱼者说

优质内容筛选与推荐>>
1、面向对象基础
2、win10 应用商店打不开解决
3、the security of smart contract- 2
4、人脸识别综述
5、JavaScript concat() 方法


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号