看了下,解释说这是「享元模式」,还是不太理解,求问这样有什么好处,毕竟这样基于对象的要占用好多内存的。
阿神2017-04-17 13:47:01
享元模式(英文:Flyweight Pattern)是一種軟體設計模式。它使用共享物件,用來盡可能減少記憶體使用量以及分享資訊給盡可能多的相似物件;它適合用於只是因重複而導致使用無法令人接受的大量記憶體的大量物件。通常物件中的部分狀態是可以分享。常見做法是把它們放在外部資料結構,當需要使用時再將它們傳遞給享元。
迷茫2017-04-17 13:47:01
如果你在一個程式裡大量用到了某一個整數,比如1
,假設這個整數物件佔用記憶體100kB,而你用了100萬次,那麼這些1
佔用的記憶體仍然是100kB。
如果是32位元機器上的C語言,一個整數4byte,100萬個整數佔用的記憶體大小是4B * 1000k,也就是4MB。
怎麼說呢,這個特性不能說是好處,也不能說是壞處,這兩種模式在不同的場景下各有優劣。