Практикум по курсу "Объектно-ориентированное программирование" на языке C#. Андрианова А.А - 47 стр.

UptoLike

46
4. Интерфейс для работы с математическими
объектами
4.1. Разработка интерфейса
Как известно, с большинством математических объектов (дробями,
комплексными числами, векторами, матрицами, полиномами и т.д.) можно
выполнять одни и те же операции сложение, вычитание, умножение и т.д.
Для того, чтобы единообразно обрабатывать операции с объектами разных
типов, удобно объединить в единый интерфейс все общие операции работы с
объектами, а затем последовательно разрабатывать эти классы, раскрывая
созданный интерфейс. Наличие общего родительского интерфейса позволит,
в частности, оформлять общие по обработке алгоритмы в виде обобщенных
функций, что удобно с точки зрения принципа повторного использования
программного кода.
Интерфейс работы с математическими объектами, в качестве которых
могут выступать матрицы, полиномы, векторы, дроби, комплексные числа
должен определять общие операции: сложение, вычитание, умножение на
объект и умножение на число. Также требуется включить в интерфейс метод
получения строкового представления объекта, чтобы использовать
полученную строку для вывода объекта.
interface IMathObject
{
// метод получения суммы объектов
IMathObject Summa (IMathObject ob);
// метод получения разности объектов
IMathObject Substract (IMathObject ob);
// метод умножения объектов
IMathObject Multiply (IMathObject ob);
// метод умножения объекта на число
IMathObject Multiply(double chislo);
// метод получения строкового представления объекта
string ToString();
}
        4. Интерфейс для работы с математическими
                                        объектами


                                 4.1. Разработка интерфейса

      Как известно, с большинством математических объектов (дробями,
комплексными числами, векторами, матрицами, полиномами и т.д.) можно
выполнять одни и те же операции – сложение, вычитание, умножение и т.д.
Для того, чтобы единообразно обрабатывать операции с объектами разных
типов, удобно объединить в единый интерфейс все общие операции работы с
объектами, а затем последовательно разрабатывать эти классы, раскрывая
созданный интерфейс. Наличие общего родительского интерфейса позволит,
в частности, оформлять общие по обработке алгоритмы в виде обобщенных
функций, что удобно с точки зрения принципа повторного использования
программного кода.
      Интерфейс работы с математическими объектами, в качестве которых
могут выступать матрицы, полиномы, векторы, дроби, комплексные числа
должен определять общие операции: сложение, вычитание, умножение на
объект и умножение на число. Также требуется включить в интерфейс метод
получения строкового представления объекта, чтобы использовать
полученную строку для вывода объекта.

   interface IMathObject
   {
      // метод получения суммы объектов
      IMathObject Summa (IMathObject ob);
      // метод получения разности объектов
      IMathObject Substract (IMathObject ob);
      // метод умножения объектов
      IMathObject Multiply (IMathObject ob);
      // метод умножения объекта на число
      IMathObject Multiply(double chislo);
      // метод получения строкового представления объекта
      string ToString();
   }




                                                                     46