ВУЗ:
Составители:
Рубрика:
69
возникнет другая проблема. Данный класс разрабатывался нами без
предпол ожения о том , что от него будет унаследован, скажем , класс для
представления многочленов , и это сказалось и на его реализации, и на
интерфейсе. Н апример, мы не сможем исключить из открытого интер-
фейса наследника метод ScalarProduct, имеющий смысл только для век-
торов . Названия некот орых методов , таких как GetComp и SetComp,
также не вполне подходят производным классам (у матриц и многочл е-
нов — эл ементы и коэффициенты, а не компоненты).
Таким образом , наиболее правильным является введение универ-
сального предка для классов векторов , многочленов и матриц , зани-
мающего промежуточное положение между ними и классом Number. Он
должен с одной стороны содержать весь код , общий для его наследни-
ков , а с другой — не добавлять в открытый интерфейс иерархии методы,
которые бы противоречили содержательному смыслу хотя бы одного из
производных классов .
Построение описанной иерархии классов представляет собой
пример более сложной задачи, естественным образом продолжающей
приведенную серию. Для читателя, освоившего предыдущий материал ,
ее решение будет неплохим упражнением . При этом стоит заметить, что
написать код сразу «набело» здесь вряд ли удастся, скорее всего потре-
буется несколько последовательных подгонок и притирок классов друг
ко другу. Но в любом случае более подробное обсуждение данной темы
выходит за рамки настоящего из дания.
в оз никнет д ругая пробл ем а. Данны й кл ас с раз рабат ы в ал с я нам и без
пред пол ожения отом , чтоот негобуд ет унас л ед ов ан, с кажем , кл ас с д л я
пред с т ав л ения м ногочл енов , и это с каз ал ос ь и на его реал из ац ии, и на
инт ерфейс е. Н априм ер, м ы не с м ожем ис кл ючит ь из от кры того инт ер-
фейс а нас л ед ника м етод ScalarProduct, им еющ ий с м ы с л тол ь код л я в ек-
торов . Н аз в ания некоторы х м етод ов , т аких как GetComp и SetComp,
т акже не в пол не под ход ят произ в од ны м кл ас с ам (у м ат риц и м ногочл е-
нов — эл ем ент ы и коэффиц иент ы , а не ком понент ы ).
Т аким образ ом , наибол ее прав ил ь ны м яв л яет с я в в ед ение унив ер-
с ал ь ного пред ка д л я кл ас с ов в екторов , м ногочл енов и м ат риц , з ани-
м ающ егопром ежуточное пол ожение м ежд у ним и и кл ас с ом Number. О н
д ол жен с од ной с тороны с од ержат ь в ес ь код , общ ий д л я его нас л ед ни-
ков , а с д ругой — не д обав л ят ь в от кры т ы й инт ерфейс иерархии м етод ы ,
которы е бы прот ив оречил и с од ержат ел ь ном у с м ы с л у хотя бы од ногоиз
произ в од ны х кл ас с ов .
Пос т роение опис анной иерархии кл ас с ов пред с т ав л яет с обой
прим ер бол ее с л ожной з ад ачи, ес т ес т в енны м образ ом прод ол жающ ей
прив ед енную с ерию. Дл я чит ат ел я, ос в оив шего пред ы д ущ ий м ат ериал ,
ее решение буд ет непл охим упражнением . При этом с тоит з ам ет ит ь , что
напис ат ь код с раз у «набел о» з д ес ь в ряд л и уд ас т с я, с корее в с егопот ре-
бует с я нес кол ь ко пос л ед ов ат ел ь ны х под гонок и прит ирок кл ас с ов д руг
код ругу. Н ов л юбом с л учае бол ее под робное обс ужд ение д анной т ем ы
в ы ход ит з а рам ки нас тоящ егоиз д ания.
69
Страницы
- « первая
- ‹ предыдущая
- …
- 67
- 68
- 69
- 70
- 71
- …
- следующая ›
- последняя »
