我正在使用复杂的对象设计,我使用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。
答案 0 :(得分:1)
不保留模式。您需要使用[OnDeserialized]手动重新构建所需的引用。