Обычно я делю уровень представления данных на уровень данных.Представление его в GUI кажется мне чем-то связанным со слоем представления, а не со слоем данных.
Я бы предложил вам поместить где-нибудь на вашем уровне представления функцию, которая преобразует адрес в строку.
Представление данных не связано с данными!
Статический метод хорош.Класс конвертера был бы лучше: вы можете оставить один экземпляр для своего приложения, но вы можете заменить его или написать другой, если вы перемещаете свое приложение из GUI в WEB с другим форматом или если в одном окне вы хотите показать все и вВ другом окне вы хотите отобразить только часть информации или информации, отформатированной другим способом.
Существует несколько моделей, которым вы можете следовать, например, Microsoft WPF использует совершенно другой подход, MVVM, Model View View Model, которыйпозволит вам очень хорошо отделить уровень данных от бизнес-логики от уровня представления.
Я обычно переопределяю ToString в C # или toString в Java только для целей отладки (представляя строку, которую я могу использовать для отладки) или для некоторыхвид простой сериализации в строку, обычно помещая также FromString (или метод fromString в Java).Одним из примеров являются пользовательские типы, такие как Point, Vector, Matrix и т. Д.
Говоря о мире C # ..
public class AddressToStringConverter
{
public virtual string ToString(Address address)
{
return address.Street + ", " + address.City
}
}
Затем в вашей форме (например).
AddressToStringConverter myConverter = new AddressToStringConverter();
public Address CurrentSelectedAddress { get { ... } }
public button1_click(object sender, EventArgs e)
{
button1.Text = myConverter.Convert(address);
}
Если вы хотите, вы можете использовать другие полезные интерфейсы, такие как, например, ITypeConverter