构建器模式和享元模式在使用方面有什么区别,因为它们都处理大量对象?
问问题
2245 次
3 回答
11
Builder 模式用于创建许多对象,而享元模式是关于共享这样的对象集合。
这两种模式都处理“复合”,即可能有多个元素的对象,但它们根本不需要一起使用。Flyweight 的原型用例是在文本编辑器应用程序中反复使用几十个字符对象的池(这是“GoF”书中给出的示例)
于 2009-11-14T05:39:20.547 回答
2
当“必须操纵许多对象并且这些对象不能承受无关数据”时,享元模式是合适的。在 Java 中,String 对象作为享元进行管理。Java 将所有固定的字符串文字放入文字池中。对于冗余文字,Java 在池中只保留一份副本。
使轻量级工作的关键是使用工厂方法或构建器设计模式控制对象实例化。工厂方法的工作只是创建对象:给定输入条件,返回适当类型的对象。
抽象工厂类似于builder,也可以构造复杂的对象。主要区别在于构建器模式侧重于逐步构建复杂对象。抽象因素的重点是产品对象族(简单或复杂)。
于 2010-04-13T17:45:14.530 回答