Создание классов и визуализация данных

Как понять "При создании классов следует придерживаться принципа разделения логики работы программы и визуализации данных"?. Это, когда вывод данных происходит вне класса, где производились вычисления, действия? Правильно ли?

Класс

/// <summary>
/// Класс сортировки
/// </summary>
public class Sort
{
    //Размер массива, Левая граница элеметнов, Правая граница элеметнов
    private int _n,_l,_r;
    //Массив элеметнов
    private int[] _array;
    /// <summary>
    /// Конструктор с параметрами
    /// </summary>
    /// <param name="n">Размер массива</param>
    /// <param name="l">Левая граница</param>
    /// <param name="r">Правая граница</param>
    public Sort(int n,int l, int r)
    {
        _n = n;
        _array = new int[_n];
        _l = l;
        _r = r;
    }
    /// <summary>
    /// Констрктор без параметров
    /// </summary>
    public Sort()
    {
        _n = 10;
        _array = new int[_n];
        _l = -10;
        _r = 10;
    }
    /// <summary>
    /// Массив
    /// </summary>
    public  int[] Array
    {
        get
        {
            return _array;
        }
        set
        {
            _array = value;
        }
    }
    /// <summary>
    /// Метод заполнения массива случайными числами
    /// </summary>
    public void RandomArray()
    {
        Random rnd = new Random();
        for (int i = 0; i < _n; i++)
            _array[i] = rnd.Next(_l, _r + 1);
    }
    /// <summary>
    /// Метод перестановки двух элемтнов массива местами
    /// </summary>
    /// <param name="i">Индекс первого элемента</param>
    /// <param name="j">Индекс второго элемента</param>
    public void Swap(int i, int j)
    {
        int x = _array[j];
        _array[j] = _array[i];
        _array[i] = x;
    }
    /// <summary>
    /// Метод Гномьей сортировки
    /// </summary>
    public void GnomeSort()//Гномья сортировка
    {
        int i = 0;
        while (i < _n)
        {
            int j = i;
            if ((j == 0) || (_array[j] >= _array[j - 1])) i++;
            else
            {
                Swap(j - 1, j);
                i--;
            }
        }
    }
    /// <summary>
    /// Метод сортировки перемешиванием
    /// </summary>
    public void ShakerSort()
    {
        int l = 0,
            r = _n - 1;
        while (l < r)
        {
            for (int i = l; i < r; i++)
            {
                if (_array[i] > _array[i + 1])
                    Swap(i, i + 1);
            }
            r--;
            for (int i = r; i > l; i--)
            {
                if (_array[i - 1] > _array[i])
                    Swap(i - 1, i);
            }
            l++;
        }
    }
}

Часть из Main

Sort GnomDefault = new Sort();
Sort ShakeDefault = new Sort();
GnomDefault.RandomArray();
Console.WriteLine("\nИсходный массив:");

foreach (int i in GnomDefault.Array)
    Console.Write("{0} ", i);

Console.WriteLine("\n");

GnomDefault.GnomeSort();
Console.WriteLine("Гномья сортировка:");

foreach (int i in GnomDefault.Array)
    Console.Write("{0} ", i);

Console.WriteLine("\n");

ShakeDefault.RandomArray();
Console.WriteLine("Исходный массив:");

foreach (int i in ShakeDefault.Array)
    Console.Write("{0} ", i);

Console.WriteLine("\n");

ShakeDefault.ShakerSort();
Console.WriteLine("Сортировка перемешиванием:");

foreach (int i in ShakeDefault.Array)
    Console.Write("{0} ", i);

Console.WriteLine("\n");

Ответы (0 шт):