Евгений Каратаев
Иногда так бывает - соберутся люди и начинают обсуждать серьезные проблемы. И устают уже, а все равно продолжают. Остановиться уже не могут, потому как несерьезно получится. И мысли уже кончаются. И тут кто-то говорит шутку и все смеются и ситуация разряжается. Как такая шутливая разрядка и появилась эта работа. Несмотря на шутливость и кажущуюся несерьезность, доля интересного и полезного в ней есть.
Как проектировать классы?
Классы есть определения понятий и отношений между ними, выраженные на каком - либо объектном языке. Когда говорят, что объекты - это ново, модно и все такое, мне это трудно понять, поскольку ничего кроме объектов никогда не писал. Скорее уж программирование без объектов - вот это действительно новость.
Чтобы спроектировать классы, следует выполнить по шагам следующий рецепт. Описание рецепта будет иллюстрироваться на настолько банальном примере, чтобы его нельзя было использовать в реальной работе. Как это и принято в настоящих компьютерных публикациях.
Шаг 1
Возможно вы искали - Доклад: Интерфейсы как решение проблем множественного наследования
Следует взять и потрясти заказчика (или самого себя, если сам все придумал) на тему получить побольше описания темы на русском языке. Надо именно на русском. Пусть пишет. Или даст статью в журнале. Тоже бывает. Увидит шеф статью и загорится на тему "а мне тоже надо". После этого следует просмотреть текст и выбросить из него все, что к делу не относится. После чего дописать к нему то, что не упомянуто, а по идее должно быть. После таких исправлений русскоязычного текста его следует перечитать и немножко погордиться, поскольку первый этап выполнен.
Пример, что может получиться в результате:
В лесу родилась елочка, в лесу она росла.
Зимой и летом стройная, зеленая была.
Вот так вот, грубо и зримо, будем выделять то, что относится к разбираемому примеру.
Похожий материал - Доклад: Перспективные архитектуры генетического поиска
Шаг 2
Второй шаг состоит из того, что выписываем отдельно слова, являющиеся существительными, прилагательными, глаголами, союзами и другими частями речи. Кто давно ничего не писал на других языках кроме C++, Object Pascal, Java или других, тот может проконсультироваться у своих младших товарищей, какое слово чем является. В нашем примере получится:
существительные: лес, елочка, зима, лето
глаголы: родиться, рости, быть
прилагательные: стройная, зеленая
Очень интересно - Реферат: Решение задачи одномерной упаковки с помощью параллельного генетического алго-ритма
союзы: и
местоимение "она" позорно отнесем к существительным, а предлог "в" - к союзам.
Шаг №2 закончен.
Шаг 3
Третий шаг заключается в таком же , как и второй, монотонном переписывании исходного текста. Теперь переписываем по-другому.
Вам будет интересно - Реферат: Алгоритм удаления циклов в графе вертикальных ограничений задачи трассировки многослойного канала
Каждому имени нарицательному ставим в соответствии имя класса и называем его наследником некой иерархии.
Каждому имени собственному ставим в соответствие объект как экземпляр некоего нарицательного класса. В нашем примере имени собственного нет, поэтому я, насупив бровь, могу смело заявить, что разбор примера с именем собственным есть домашнее задание и что вообще "легко видеть, что".
Каждому прилагательному ставим в соответствие класс и называем его базовым. Еще лучше - абстрактным. Если язык позволит. Тем, кто пишет на Java, вообще повезло - прилагательным следует сопоставлять интерфейс в том виде, в котором он определен в Java.
Идем дальше - как только видим глагол, смело создаем функцию, поскольку глагол есть действие, переводящее одно в другое либо что-то куда-то передающее.
Союзы есть сигнал о существовании предикативных условий, если участвуют в исходных материалах действия или о существовании наборов данных, если участвуют в выходных материалах действия.
Похожий материал - Реферат: Об одном способе векторного и аналитического представления контура изображения
В нашем примере получим:
Базовые классы:
TСтройный, TЗеленый.
Классы - наследники, которые можно завести: