LINUX.ORG.RU

понять суть ООП

 ,


5

1

собственно САБЖ подскажите что почитать/посмотреть, чтобы вникнуть в предметную область. Понимаю, что пишу как-то не так, ибо передаю методам кучу параметров и почти не использую свойств.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 2)

ибо передаю методам кучу параметров

вместо кучи параметров принято передавать экземпляр структуры, если все эти параметры необходимы

alex_custov ★★★★★
()
Последнее исправление: alex_custov (всего исправлений: 1)

Кнута почитай, что ли. Попробуй какой-нибудь ООП-язык выучить (лисп, говорят, хорош).

Anon
()

Делай классы, когда объёктов будет больше одного. Во всех остальных случаях ооп не нужно.

nanoolinux ★★★★
()

расскажи, что и как пытаешься написать, что кажется неправильным

marvin_yorke ★★★
()

суть ООП:

One powerful design strategy, which is particularly appropriate to the construction of programs for modeling physical systems, is to base the structure of our programs on the structure of the system being modeled. For each object in the system, we construct a corresponding computational object. For each system action, we define a symbolic operation in our computational model. Our hope in using this strategy is that extending the model to accommodate new objects or new actions will require no strategic changes to the program, only the addition of the new symbolic analogs of those objects or actions. If we have been successful in our system organization, then to add a new feature or debug an old one we will have to work on only a localized part of the system.

sicp

ymn ★★★★★
()

подскажите что почитать

Наверное, неплохо было бы начать со Страуструпа и С++, а потом посмотреть на ruby, python, smalltalk, cl.

alienclaster ★★★
()

Чтобы понять суть ООП, мало прочитать про это, надо еще понять самому, а это достигается одним способом, юзать ООП. По другому не получится.

Книга максимум научит ООП.

ИМХО

ihappy
()

Гради Буч. Бертран Мейер.

anonymous
()

передаю методам кучу параметров и почти не использую свойств.

Все в порядке, ты на верном пути.

Ну и «передавать экземпляр структуры», хотя это уже вопрос стиля.

linuxnewb
()

Чтобы понять ООП, надо учить яву, подругому никак. С++ научит плохому, питоны,смолтоки - в печь.

unt1tled ★★★★
()
Ответ на: комментарий от ihappy

На плюсы нельзя с неокрепшей психикой, особенно без понимания ооп. Над его адептами потом в приличном обществе хихикают.

unt1tled ★★★★
()

1. Фаулер - Рефакторинг. Улучшение существующего кода. 2. Приемы объектно-ориентированного программирования. Паттерны проектирования.

anonymous
()
Ответ на: комментарий от onanij

Эта книга совершенно не о том. Она - о внутренней реализации CLOS.

dave ★★★★★
()

Б.Мейер.

anonymous
()
Ответ на: комментарий от Anon

Попробуй какой-нибудь ООП-язык выучить (лисп, говорят, хорош).

Попробуй какой-нибудь ООП-язык выучить (Ruby, говорят, хорош).

Я поправил, не благодарите.

Alve ★★★★★
()
Ответ на: комментарий от Anon

ООП-язык выучить
лисп, говорят, хорош

Эм? Допустим в лиспе есть парадигма ООП, но это это не делает его ООП языком. Вообще никак. В лиспе удобно работать с лямбдами, что говорит о его функциональности.
to TS:осваивай ООП на С++ с чтением какого нибудь Страуструпа и будет тебе счастье.

comp00 ★★★★
()
Ответ на: комментарий от PolarFox

помимо class там есть и инкапсуляция (пусть и в виде неймспейсов), и наследование. Так что все концепции ООП языка поддерживаются => имеет право быть ООП языком

comp00 ★★★★
()
Ответ на: комментарий от comp00

помимо class там есть и инкапсуляция (пусть и в виде неймспейсов), и наследование. Так что все концепции ООП языка поддерживаются => имеет право быть ООП языком

Ну офигеть теперь. Эзотерический ООП-язык.

geekless ★★
()
Ответ на: комментарий от comp00

Глянь в конец второго издания «Объектно-ориентированный анализ и проектирование» Гради Буча. Там отдельно рассматривается Common Lisp как пример языка ООП. В третьем издании такой чести уже не удостоили - на Java места не хватило бы.

dave ★★★★★
()
Ответ на: комментарий от anonymous

Зачем какие то сравнения приводить? В лиспе лямбды реализуются удобно и все. Мб где-то в каком нибудь хацкеле это еще удобнее, но в данном контексте я говорю о лиспе.

comp00 ★★★★
()
Ответ на: комментарий от geekless

Да нормально в крестами с лямбдами.

anonymous
()
Ответ на: комментарий от dave

Там отдельно рассматривается Common Lisp как пример языка ООП.

Я знаю, потому и написал что парадигму поддерживает. Но так ли она полезна в нем — другой вопрос. Мне прогать на нем ООП не очень удобно.

comp00 ★★★★
()
Ответ на: комментарий от anonymous

А давай сначала уясним о диалекте какого лиспа мы говорим. Если например о схеме - то чистое 4.2, если о common lisp то функциональность одна из поддерживаемых парадигм, что также указывает что твое высказывание 4.2. Конкретизируй

comp00 ★★★★
()
Ответ на: комментарий от ihappy

Потролить захотелось? Каникулы начались?
В C++ есть куча других проблем при написании программ в ООП парадигме. Человеку, непонимающему принципов туда лезть крайне не советуется. Там можно не только прострелить себе ноги, но и научиться плохим практикам. Каким - учи С++.
Java же является историей успеха ООП, во всех ее проявлениях, особенно в ее 2D графике (swing).

unt1tled ★★★★
()
Ответ на: комментарий от comp00

Непонятно, как такие убогие лямбды, как в Лиспе (невероятно, но даже SML юзабельнее), говорят что-то о функциональности языка.

Common Lisp - типичный ООП-язычок на уровне Питона и Руби.

anonymous
()
Ответ на: комментарий от comp00

Да на нем вообще прогать не удобно. Он не нужен от слова совсем. C, C++, Java/C#, Scala, Haskell, Python/Ruby покрывают все.

anonymous
()
Ответ на: комментарий от unt1tled

Я вот знаю С++ и могу с уверенностью сказать, что плохому он не учит. Плохой код на плюсах глючит и падает. У тебя же плюсофобия.

anonymous
()
Ответ на: комментарий от unt1tled

Хорошо :) Приведи хотя бы один пример «плохого», чему кресты учат.

anonymous
()
Ответ на: комментарий от unt1tled

Java же является историей успеха ООП, во всех ее проявлениях

да но порой защита от «пристрелить себе ногу» на уровне паранойи утомляет, а когда я осознаю что такой же код, написанный на с++ работает на 20% быстрее и куда меньше прожорливый при этом, я впадаю в депрессию. И да, С++ более красивый синтаксически.

comp00 ★★★★
()

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

King_Carlo ★★★★★
()
Ответ на: комментарий от comp00

Когда я осознаю что такойже код будет выполняться на 0.001 секунду быстрее на C++, я впадаю в депрессию. Кто, КТО, вернет мне тысячную долю секунды времени моей жизни, КТО я тебя спрашиваю, а?

unt1tled ★★★★
()
Ответ на: комментарий от comp00

защита от «пристрелить себе ногу»

это называется хорошей практикой

С++ более красивый синтаксически

а вот это ложь

unt1tled ★★★★
()
Ответ на: комментарий от comp00

Я знаю, потому и написал что парадигму поддерживает. Но так ли она полезна в нем — другой вопрос. Мне прогать на нем ООП не очень удобно.

Зато мне удобно.

Парадигма полезна. Гуишная библиотека CAPI практически полностью основана на ООП.

dave ★★★★★
()
Ответ на: комментарий от unt1tled

это называется хорошей практикой

но не на уровни паранойи!

а вот это ложь

А ну-ка давай перегрузи оператор в java или поработай с ссылками в чистом виде, как это можно в с++ с указателями. Да java более допиленная, java более актуальная и перспективная. И вообще Ънтерпрайз и все дела. Но С++ красивее.

comp00 ★★★★
()
Ответ на: комментарий от dave

Парадигма полезна. Гуишная библиотека CAPI практически полностью основана на ООП.

ок. Пусть так. Но все равно лисп это не тот язык, который нужно учить для понимания концепций ООП у него свои тортики

comp00 ★★★★
()
Ответ на: комментарий от comp00

А ну-ка давай перегрузи оператор в java или поработай с ссылками в чистом виде, как это можно в с++ с указателями.

Слыш, школота сверху, вон смотри, примеры тебе приводят.

C++ - write only язык. Он не только не красивее, он ужаснее.

unt1tled ★★★★
()
Ответ на: комментарий от unt1tled

C++ - write only язык.

Хмм, а вот с Boost вполне можно написать read-only код :-) (Spirit, Phoenix, Range в помощь).

Begemoth ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.