序列化是否允许Flyweight设计模式?

时间:2013-04-07 01:37:00

标签: serialization flyweight-pattern

我正在使用复杂的对象设计,我使用Flyweight模式来限制类的多个实例之间的某些非静态变量。如果两个对象(flyweight信息和包含它的类)都是Serializable,并且这些卡的列表从wcf服务传输到客户端,则客户端是否维护该模式(即,只有一个flyweight信息的副本用于多个实例更高级别的?)我将在下面给出一个轻微的代码示例,以防我不能很好地解释自己。

public class Flyweight
{
    public Image image;
}

public class SmallObject
{
    public Flyweight fly;
}

如果列表包含50个以上的SmallObjects,但使用Flyweight模式仅为每个单独类型的对象创建足够的图像。它不能是静态变量,因为有不同类型的SmallObject由于设计限制而无法由子类表示。我需要知道的是,如果客户端收到50个以上的离散Flyweight对象,或者维护了模式,并且每种类型只收到1个Flyweight。

1 个答案:

答案 0 :(得分:1)

不保留模式。您需要使用[OnDeserialized]手动重新构建所需的引用。