Частично относится к моему более раннему вопросу , у меня есть система, в которой мне нужно хранить сложные данные в виде строки.Вместо того, чтобы анализировать эти строки как все виды отдельных объектов, я просто создал один класс, который содержит все эти объекты, и у него есть некоторая логика синтаксического анализатора, которая будет кодировать все свойства в строки или декодировать строку для получения этих объектов.Это все хорошо и хорошо.Этот вопрос не о самом парсере, а о том, где я должен разместить логику для парсера.Является ли лучшим выбором поместить его как свойство или как метод?
В случае свойства, скажем, public string DataAsString
, средство доступа get
будет содержать логику для кодирования всех данных.в строку, в то время как метод доступа set
будет декодировать входное значение и установить все данные в экземпляре класса.Это кажется удобным, потому что ввод / вывод действительно является строкой.
В случае метода одним методом будет Encode()
, который возвращает закодированную строку.Затем либо сам конструктор будет содержать логику для декодирования строки и потребует строковый аргумент, либо я напишу метод Decode(string str)
, который вызывается отдельно.В любом случае он будет использовать метод вместо свойства.
Итак, есть ли функциональная разница между этими путями с точки зрения фактического выполнения кода?Или они в основном эквивалентны, и это сводится к выбору личных предпочтений или какой из них выглядит лучше?И в таком вопросе ... что бы выглядело чище в любом случае?