Хобрук: Ваш путь к мастерству в программировании

Смешение процедурного и объектно-ориентированного программирования

Итак, давным-давно я программировал процедурно сначала на Basic на моей первой модели BBC Model B, а затем немного на Pascal в университете, а также на ассемблере.

Затем появился объектно-ориентированный подход, который казался гораздо более разумным во всех отношениях, и это было все, что я использовал с C++, Perl, Java, Ruby...

Возвращаясь к программированию не веб-приложений после примерно 8-летнего перерыва на iPhone, я обнаружил, что Objective C очень легко освоить, но время от времени приходится бросать Objective C и возвращаться к простому старому C для низких уровень, и вот тут снова возвращаемся к процедурному программированию.

То, что мне нужно, это хорошее руководство о том, как смешивать объектно-ориентированный и процедурный стили, как управлять памятью, следует ли обернуть процедурные части в объект и т. д. и т. д.

Также было бы полезно хорошее базовое руководство по хорошему процедурному стилю для C, поскольку я, кажется, даже больше не могу думать в процедурных терминах.



Ответы:


1

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

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

13.05.2009

2

Если это поможет, просто подумайте о своих процедурах/функциях как о методах статического класса. Объем ваших ссылок на память немного отличается, но не сильно. Если вы ограничиваете свои функции доступом только к данным, переданным в качестве параметров, это еще проще, поскольку вам не нужно разбираться в символах.

EDIT: я должен уточнить, что здесь я говорю в общем. Я не занимался никакими разработками для iPhone, поэтому могу рассказать о деталях доступа/управления памятью.

13.05.2009

3

Насколько я знаю, объектно-ориентированное программирование, по сути, предназначено для того, чтобы данные и действия над этими данными были связаны вместе.
C++ и Ojective-C предоставляют уже готовые механизмы, которые помогут вам, но вы все равно можете справиться с этим самостоятельно.

Многие библиотеки C просто связывают указатель структуры в качестве первого параметра объектно-ориентированных методов.
Вы можете найти дополнительную информацию об этом, погуглив "Объектно-ориентированное программирование на C".

13.05.2009

4

Вам не нужно мыслить процедурно. Оберните все низкоуровневые вещи в классы. Вы можете использовать цель-С++.

13.05.2009
Новые материалы

Управление DOM для чайников вроде меня
Одной из первых вещей, которую мы рассмотрели, когда начали изучать Javascript во Flatiron, была модель DOM. Кто он? Чем он занимается? Он больше машина, чем человек? Ну да довольно много. ДОМ..

Что такое структура данных?
Структура данных хранит и извлекает данные. Все, что обеспечивает эти две функции, является структурой данных . Период. Вы можете пропустить оставшуюся часть статьи, если ответ..

мои январские чтения по программированию
Эрик Эллиот Программирование приложения JavaScript Эл Свейгарт «Автоматизируйте скучные вещи с помощью Python» Прогрессивное веб-приложение Google..

Создание ассоциаций секвелизации с помощью инструмента командной строки Sequelize
Sequelize - популярный, простой в использовании инструмент объектно-реляционного сопоставления (ORM) JavaScript, который работает с базами данных SQL. Довольно просто начать новый проект с..

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

Введение в машинное обучение для обнаружения аномалий (часть 1)
Тщательно созданный, тщательно спроектированный ресурс для специалистов по данным. Часть 1 Главы 03 из Руководства по машинному обучению для обнаружения аномалий Внимание! Прежде чем вы..

Начало работы с Pulumi в Digital Ocean
Цифровой океан (ДО) — отличная альтернатива многим другим поставщикам облачных услуг. DO предоставляет простой и понятный пользовательский интерфейс, упрощающий управление инфраструктурой и..