Я хочу создать библиотеку классов, которая содержит интерфейс, из которого могут образовываться объекты, скажем ISaveableObject
.C# - Создание сохраняемого объекта
Теперь этот интерфейс должен реализовывать следующие функции:
- объектов, которые проистекают от этого интерфейса должен иметь метод
ToSaveableObject
(аналогично методуSystem.Object.ToString()
). - И он должен содержать конкретный конструктор, который принимает в качестве параметра массив объектов.
Связь между этими двумя должно быть, что метод ToSaveableObject
возвращает строку, которая принимает все свойства, которые необходимы для object[]
и преобразовать его в читаемую строку и вернуть его.
Я иду в правильном направлении, желая использовать интерфейс или является абстрактным классом, более подходящим для этого случая?
К сожалению, интерфейсы не могут реализовать конструкторы, так есть ли другой способ достижения моей цели?
использовать абстрактный базовый класс, который наследуется от вашего предполагаемого интерфейса. Вы хотите больше деталей реализации, которые больше, чем может обеспечить интерфейс. – Nkosi
interfacet no «должен реализовывать», но, возможно, «должен планировать контракт» –
Я не понимаю, что «должен иметь конкретный конструктор». Мир «сберегаемых» или «сериализуемых» решений никогда не требует «конкретного конструктора», многие хотят, по крайней мере, не защищать args ctor. С обсуждением кода будет лучше –