Что хорошее стандартное осуществление должно изучить функции OO языка? [закрытый]

12
задан 4 revs, 3 users 93% 16 September 2012 в 15:30
поделиться

7 ответов

Я не могу представить, что может существовать стандартный набор упражнений, который естественным образом познакомил бы всех с объектно-ориентированными функциями языка программирования. Многие вводные OO-руководства полны Животных , Кошек и Собак , что, по крайней мере, для меня не подходит. Найдите проблемную область в объектно-ориентированном стиле, с которой вы много боретесь, и попробуйте использовать ее в качестве набора стандартных упражнений для каждого изучаемого вами языка.

ОО-конструкции, которые мы привыкли мыслить терминами, могут не иметь смысла в языке. На ум приходит Javascript, который потрясает все наши представления об объектах в целом. Тем не менее, вам не следует адаптироваться к языку, а лучше адаптировать его для своих целей. Со временем, когда ваш репозиторий знаний будет расти и совершенствоваться с опытом, вы, естественно, захотите реализовать то, что вы считаете лучшим, на каждом используемом вами языке программирования, независимо от того, что он предлагает.

2
ответ дан 2 December 2019 в 23:31
поделиться

Немного забавного: реализуйте иерархию Форма / Круг / Эллипс, не попадая в ловушку (это прекрасно может быть сделано в Java, Scala и т. Д.).

править реализовать это до , глядя на предлагаемые решения в статье Википедии :)

1
ответ дан 2 December 2019 в 23:31
поделиться

Вот что я использую:

http://homepage.mac.com/s_lott/books/oodesign.html

Я делал это достаточно много раз, чтобы это стало "стандартом" по моему мнению.

0
ответ дан 2 December 2019 в 23:31
поделиться

Я использовал Hunt The Wumpus. Оригинальная реализация в BASIC вовсе не была ОО, но если вы начнете все сначала, она довольно хорошо подходит для этого.

1
ответ дан 2 December 2019 в 23:31
поделиться

Возможно, это слишком специфично, но именно это я считаю своей заслугой в том, что лично я начал понимать ООП. По работе мне нужно было написать код для извлечения данных из большого количества различных источников. В то время мне казалось очевидным, что я должен решать проблему с точки зрения разработки различных классов "DataProvider". Лишь постепенно стало ясно, как много кода я могу повторно использовать, разбив различные виды провайдеров на иерархические категории, например, так:

  • DataProvider
    • TextDataProvider
      • HtmlDataProvider
      • CsvDataProvider
      • XmlDataProvider
    • BinaryDataProvider

... и так далее. Я бы предположил, что любая проблема, подобная этой - где вам нужно выполнить определенный вид задачи (в моем случае, извлечение данных) кучей различных способов (например, из нескольких источников) - будет отличной возможностью углубиться в ООП и, надеюсь, научиться ценить его полезность.

0
ответ дан 2 December 2019 в 23:31
поделиться

Я лично считаю, что лучший способ изучить ООП - это написать свой собственный фреймворк для тестирования.

Я считаю, что схема Test Runner, владеющего одним или несколькими наборами тестов, каждый из которых имеет свои собственные тестовые случаи, является достаточной отправной точкой, но вы можете легко развить ее оттуда, и это может даже стать чем-то, что вы захотите использовать в будущем.

В качестве альтернативы, если вы хотите что-то совершенно бросовое, всегда есть Enterprise FizzBuzz. :)

.
0
ответ дан 2 December 2019 в 23:31
поделиться

Хороший вопрос ... На мой взгляд, лучший учитель - просто найти простой пример объектно-ориентированных функций и попытаться написать что-нибудь самостоятельно, создав новые примеры для себя и попытаться разработать простое приложение, в котором Вы можете подключиться все возможности OO.

Реализация такого алгоритма, как сортировка слиянием, без использования объектно-ориентированной функции, поскольку она им не нужна, бесполезна. Попробуйте настоящие полезные программы.

Я помню, что при изучении объектно-ориентированного программирования я писал приложение с общим интерфейсом "Animal" с методами и классом, которые его наследуют, например "амфибия". это было фантастическое время;)

1
ответ дан 2 December 2019 в 23:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: