如果我使用flyweight模式在一系列包含外部数据的对象中创建内部数据(包括大图像),然后使用WCF作为DataContracts传输它们,客户端是否保持flyweight模式的效果(只有每种固有的轻量级类型中的一种)或者它们会收到多份副本吗?如果不清楚的话,我会尝试提供下面最基本的例子。
[DataContract]
public class FlyweightIntrinsicImplementation
{
[DataMember]
Image img;
}
[DataContract]
public class EntireClass
[DataMember]
FlyweightIntrinsicImplementation imp;
[DataMember]
int data;
}
Flyweight模式用于仅创建一种对象之间共享的较大内在数据之一,因此,MultipleClass的多个版本在服务的内存中共享一个FlyweightIntrinsicImplementation。