Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2012, 00:33   #21
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
На счет трейтов - самая близкая аналогия это абстрактный класс, но, трейт как и интерфейс может поддерживаться классом (подключаем трейт при описании класса) или даже объектом какого-либо объекта (создаем объект класса и прямо в коде пишем с поддержкой трейта(ов)). Суть трейтов в том, чтобы расширять какой то класс (объект) определенным функционалом.
Спасибо. Я это называю иначе (не хочу флудить), хотя суть понятна.
Пепел Феникса, более детально пояснил. Так, что отпишусь в одном посте.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 08.03.2012, 00:36   #22
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Можно конечно выкрутиться, создать класс и статическую функцию в нем, но это не то, т.к. доступа к предкам и к полям класса не будет, т.к. это не будет частью объекта/класса.
ну а по этой части это похоже на class-helper так называемый.

помоему это выходит чтото среднее между Class-Helper и Interface.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 08.03.2012 в 00:39.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.03.2012, 03:51   #23
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Следует уточнить, что дано определение типажа (trait), которое используется в некоторых объектно-ориентированных языках. Фактически, trait похож на множественное наследование в C++, он позволяет структурированно добавлять функционал к классу, разбивая сей функционал на части. Похожим функционалом обладают примеси в Ruby и категории в Objective-C.
Можно ещё встретить понятие type traits, которые лишь описывают некоторые свойства типа, но не несут в себе функционала, полезны для обобщённого программирования (type_traits в C++, __traits в D) и подобны классам типов (type classes) в Haskell.
netrino вне форума Ответить с цитированием
Старый 08.03.2012, 10:30   #24
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
А как тогда логичней будет, 1 класс на весь модуль и в нем уже все притекающие методы или же 1 класс на ряд связанных между собой, каким-либо образом, событий.
Не спешите использовать все фишки ООП, паттернов, и т. д., как только про них прочитали. Держите их в голове, но пишите код самым простым образом, не внося неоправданных усложнений. Вы сами почувствуете (надеюсь), когда разбиение кода на модули сделает программу гибче и читабельнее. Код размером меньше 100-200 строк (без комментариев и пустых строк) обычно вообще нет смысла разбивать на классы.

И опять же, работайте с чужим качественным кодом; периодически показывайте свой код более опытному товарищу.


Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
красота красоте рознь, а вот сделать его хорошо понятным это святое.
именно по этой причине код для работы с купюроприемником я пишу сразу в ООП, а не как с панелью(монетоприемник+дисплей) на функциях.
куда приятнее лично.
Тогда почему панель без ООП?
ds.Dante вне форума Ответить с цитированием
Старый 08.03.2012, 10:54   #25
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Тогда почему панель без ООП?
код под панель писал раньше(на функциях), переписывать пока некогда.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.03.2012, 14:05   #26
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

ds.Dante
Цитата:
И опять же, работайте с чужим качественным кодом;
Что вы именно подразумеваете под качественным?
Цитата:
периодически показывайте свой код более опытному товарищу.
Так и делаю И мне советуют использовать классы

Спасибо!
Базиля вне форума Ответить с цитированием
Старый 08.03.2012, 14:50   #27
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
Что вы именно подразумеваете под качественным?
Без багов, оптимизированный, читабельный и легкоизменяемый. Обычно это серьёзный софт, которым пользуется множество людей, особенно open source.

Последний раз редактировалось ds.Dante; 08.03.2012 в 14:57.
ds.Dante вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распознавание Аски кода и скан кода MyLastHit Общие вопросы Delphi 8 06.12.2010 18:34
Программа Universe-красота milka_ Помощь студентам 0 05.03.2010 15:27
Красота... mihali4 Свободное общение 10 20.12.2009 16:02
Красота программ Gromsky Помощь студентам 4 06.03.2008 14:55