jeudi 10 janvier 2019

Override methods in parallel class hierarchies

Which are my options to fix the issues with parallel inheritance hierarchies below? I would like to keep the Serializer classes stateless.

public abstract class BaseSerializerOptions
{
    public Boolean SortComponents { get; set; }
}

public class TextSerializerOptions : BaseSerializerOptions
{
    public Int32 TrimStrings { get; set; }
}

public class BinarySerializerOptions : BaseSerializerOptions
{
    public Boolean SkipNulls { get; set; }
}

public abstract class BaseSerializer
{
    public abstract void Serialize(Object obj, Stream s, BaseSerializerOptions opt);
}

public class TextSerializer : BaseSerializer
{
    public override void Serialize(Object obj, Stream s, TextSerializerOptions opt)
    {
    }
}

public class BinarySerializer : BaseSerializer
{
    public override void Serialize(Object obj, Stream s, BinarySerializerOptions opt)
    {
    }
}

Aucun commentaire:

Enregistrer un commentaire