Локализация изменений программного кода
Оценка 5

Локализация изменений программного кода

Оценка 5
docx
18.11.2021
Локализация изменений программного кода
Л2-002123.docx

Локализация изменений программного кода

Изменение в способе реализации полей и методов класса не долж- но приводить к необходимости изменения основного кода.


 

Пример

Определить класс, описывающий положение точки на плоскости.

Предусмотреть следующие операции:

-   Изменение координат точки

-   Выдача расстояния от точки до начала координат


При разработке класса координаты точки заданы в прямоугольной системе координат.


class Точка

{

private double k1, k2; //координаты точки

 

//открытый метод для изменения координат

public void Установить(double x, double y)

{

k1 = x; k2 = y;

}

 

//открытый метод для вычисления расстояния

public double Вычислить()

{

return Math.Sqrt(k1 * k1 + k2 * k2);

}

 

class Program

{

public static void Main()

{

Точка t; double d; t = new Точка();

t.Установить(3.0, 4.0); // вместо t.k1 =3.0; t.k2=4.0 d = t.Вычислить(); //=> 5

t.Установить(4.0, 3.0); d = t.Вычислить();

}

}

 

В процессе эксплуатации программы выяснилось, что установка коодинат точки производится намного реже, чем запрос на вычисление расстояния. Разработчики класса Точка для повышения эффективности программы приняли решение хранить координаты точкив полярной системе координат.

Как быть разработчикам класса Program?

Если доступ к полям класса Точка выполянется через специальные методы, то разработчики класса Точка должны оставить параметры неизменными, но изменить их реализацию. В этом случае код класса Program не требует никаких изменений.

 

class Точка


{

private double k1, k2; //координаты точки

 

//открытый метод для изменения координат

public void Установить(double x, double y)

{

k2 = Math.Sqrt(x*x+y*y);

            k1 = Math.Atan ((y,x));

}

 

//открытый метод для вычисления расстояния

public double Вычислить()

{

return Math.Sqrt(k1 * k1 + k2 * k2);

}

 


 

Локализация изменений программного кода

Локализация изменений программного кода

При разработке класса координаты точки заданы в прямоугольной системе координат

При разработке класса координаты точки заданы в прямоугольной системе координат

Установить( double x, double y) { k2 =

Установить( double x, double y) { k2 =
Скачать файл