C#面向对象设计模式第十二讲:Flyweight 享元模式(结构型模式)

(根据MSDN Webcast 相关课程整理)

面向对象很好的解决了系统抽象的问题,同是不会损害系统的性能。但是在某些特殊应用中,由于对象的数量太大,采用面向对象会给系统带来难以承受的内在开销。

比如:图形应用中的图元等对象,字处理软件中的字符对象等。

如果采用纯粹对方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行代价。这时候,就应该考虑采用享元模式来处理问题。

C#面向对象设计模式第十二讲:Flyweight 享元模式(结构型模式)_第1张图片

GoF:运用共享技术处理大量细粒度对象。

C#面向对象设计模式第十二讲:Flyweight 享元模式(结构型模式)_第2张图片

C#面向对象设计模式第十二讲:Flyweight 享元模式(结构型模式)_第3张图片

采用享元模式设计思想,将重复的Font对象共享出来:

也可以将Font对象封装成属性来做。

C#面向对象设计模式第十二讲:Flyweight 享元模式(结构型模式)_第4张图片

Flyweight模式采用共享的方法,解决了倍乘对象带来的系统资源与性能的开销压力的问题。

<完>

你可能感兴趣的:(C#面向对象设计模式第十二讲:Flyweight 享元模式(结构型模式))