LINUX.ORG.RU

[С головного мозга] Посоветуйте литературу по ООП


0

1

Я не знаю в чем причина: привычка к чистому С, неправильное структурное мышление, еще что-то. Но я никак не могу вкурить ООП на Python. Все время хочется забить на классы, наследования ит.д. и просто написать пару глобальных функций. Пишу очередной класс и ловлю себя на мысли: а без класса вышло бы раза в два короче.

Посоветуйте годной литературы по теории ООП, применимости к разным задачам. Еще желательно почитать про грамотное проектирование GUI вообще и на GTK в частности. Потому что например про callback-функции я узнал не из туториалов, а случайно и из википедии.


Пишу очередной класс и ловлю себя на мысли: а без класса вышло бы раза в два короче.

Классы нужны там, где предполагается их использование в виде экземпляров.

baverman ★★★ ()

Я не знаю в чем причина: привычка к чистому С, неправильное структурное мышление, еще что-то. Но я никак не могу вкурить ООП на Python

А ООП на Си вкурил? Если нет, то вот этот креатив ждет тебя!

yoghurt ★★★★★ ()

про callback-функции я узнал не из туториалов, а случайно и из википедии.

А пишешь, будто на чистом Си горы сворачивал)

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

ООП на Си -это например GTK+, или (попроще) libssh. Очеь красиво и доходчиво. WinAPI тожа, да :-P

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

Есть ещё COS - объектная система для Си в стиле CLOS

yoghurt ★★★★★ ()

если на чистом Си было бы в разы кароче и понятнее - то и ненадо туда никаких классов
дело то в обратной схеме - когда с классами было бы лучше

пихать классы куда не глядя - не особо и хорошо

ae1234 ★★ ()

Просто попробуй написать большую библиотеку со сложным, но удобным API. Или поизучай уже написанную.

Возможно, твои задачи действительно не требуют ООП.

unsigned ★★★ ()

Гради Буч «Объектно-ориентированный анализ и проектирование»

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

А пишешь, будто на чистом Си горы сворачивал)

Не сворачивал. Я просто любитель-самоучка) Ну и люблю Си.

Gregon ()
Ответ на: комментарий от ae1234

пихать классы куда не глядя - не особо и хорошо

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

Gregon ()
Ответ на: комментарий от schizoid

Гради Буч «Объектно-ориентированный анализ и проектирование»

Спасибо

Gregon ()
Ответ на: комментарий от yoghurt

А ООП на Си вкурил?

А креативчик-то интересный... Спасибо за пдфку, будет что почитать зимними вечерами)

Gregon ()

Object-Oriented Software Construction - 2nd ed. - Bertrand Meyer

Иан Грэхем «Объектно-ориентированные методы. Принципы и практика»

// Грэди Буча уже посоветовали - плюсую. Но на мой вкус - несколько «тяжелочитаемая» книга, тем не менее полезная.

OldFatMan ()
Ответ на: комментарий от Gregon

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

То, о чем ты говоришь, больше напоминает процедурную парадигму.

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

То, о чем ты говоришь, больше напоминает процедурную парадигму.

+1. О том же хотел написать. Уж очень часто в последнее время путают эти две парадигмы.

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

Автора этого креатива явно Страуструп покусал - автор пытается имплементировать на C убогий С++ ООП. Книга давно устарела, сплошные void* - никто сейчас так не пишет. Пример правильного С - код ядра Linux. Никаких void*, все строго типизировано, даже касты элементов списков через контролируемые CONTAINER_OF().

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

все строго типизировано, даже касты элементов списков через контролируемые CONTAINER_OF().

Ололо. CONTAINER_OF «типизруем» через gcc-ишный typeof, который в других компиляторах отсутствует более чем полностью. Так что

сплошные void* - никто сейчас так не пишет.

4.2

См. sqlite к примеру.

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