【问题标题】:Does Serialization allow the Flyweight design pattern?序列化是否允许享元设计模式?
【发布时间】:2015-01-11 09:18:17
【问题描述】:

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

public class Flyweight
{
    public Image image;
}

public class SmallObject
{
    public Flyweight fly;
}

其中一个列表包含 50 多个 SmallObject,但使用享元模式仅为每种单独类型的对象创建足够的图像。它不能是静态变量,因为由于设计限制,有不同类型的 SmallObjects 不能用子类表示。我需要知道的是客户是否收到了 50 多个离散享元对象,或者保持模式并且他只收到每种类型的 1 个享元。

【问题讨论】:

    标签: serialization flyweight-pattern


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2014-11-22
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多