powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Фундамент ООП
25 сообщений из 27, страница 1 из 2
Фундамент ООП
    #37975959
Bad logic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я много видел людей прекланяющихся перед ООП
так что можно подумать это величайшая теория и тд и тп.
Но как оказалось, все гораздо проще - ООП теория есть отклик мировосприятия и психологии. И не больше чем.

Здесь я попытаюсь расшифровать принципы ООП в этом контексте.

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

Наследование - Наследование продиктовано принципами размножения и выживания
Отнаследовался например сын от отца переняв основные его черты. Такой же лох и недотепа. Но жизнь могла внести свои коррективы. Также Наследование продиктовано ленью и принципом копи-паста. Никто не хочет делать чтото с нуля и берет уже готовое.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37976017
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bad logicООП теория есть отклик мировосприятия и психологии. И не больше чем.спасибо, Кэп!
...
Рейтинг: 0 / 0
Фундамент ООП
    #37976027
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bad logicЗдесь я попытаюсь расшифровать принципы ООП в этом контексте.

Начнем с инкапсуляции ...

Наследование - ...

Ты что-то путаешь,
Еще задолго до появления Smalltalk Алан Кей сформулировал три фундаментальных принципа объектно-ориентированного программирования:

Объект - базовая единица объектно-ориентированной системы.

Объекты могут обладать состоянием.

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



http://www.smalltalk.ru/articles/smalltalk.html
...
Рейтинг: 0 / 0
Фундамент ООП
    #37976051
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bad logic,
бессмысленное графоманство, но для пятницы - сойдёт.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37976415
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через 10-20 страниц это можно будет переносить в ПТ.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37976551
stwom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор ...продиктовано ленью...
!!! Лень - двигатель Прогресса




пятница
...
Рейтинг: 0 / 0
Фундамент ООП
    #37976554
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как же... полиморфизм? Забыли...
...
Рейтинг: 0 / 0
Фундамент ООП
    #37976594
Bad logicЯ много видел людей прекланяющихся перед ООП
так что можно подумать это величайшая теория и тд и тп.

Читать сюда, много думать (если есть конечно чем)

http://www.dreamsongs.com/Files/ObjectsHaveFailed.pdf
...
Рейтинг: 0 / 0
Фундамент ООП
    #37976665
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситцацЧитать сюда, много думать (если есть конечно чем)

http://www.dreamsongs.com/Files/ObjectsHaveFailed.pdf

Зачем там такой плохочитаемый шрифт? А вообще кроме этого есть еще например

http://doc.cat-v.org/programming/bad_properties_of_OO

и многое другое:

http://harmful.cat-v.org/software/OO_programming/
...
Рейтинг: 0 / 0
Фундамент ООП
    #37979079
rfq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что ООП отражает мировосприятие и психологию, это большой плюс. Меньше проблем с изучением.
А вообще, существуют ли теории, которые "больше чем" "отклик мировосприятия и психологии"? Ну хотя бы, в программировании?
И между прочим, пример с наследованием неудачный.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37979193
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bad logicвсе гораздо проще - ООП теория есть отклик мировосприятия и психологии.
- в этом контексте интересно что такое "процедурное программирование"? а ведь еще есть извращенцы которые программируют с помощью триггеров (не дай бог, такого в темном переулке встретить)
...
Рейтинг: 0 / 0
Фундамент ООП
    #37980332
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bad logic Наследование - Наследование продиктовано принципами размножения и выживания
Отнаследовался например сын от отца переняв основные его черты. Такой же лох и недотепа. Но жизнь могла внести свои коррективы. Также Наследование продиктовано ленью и принципом копи-паста. Никто не хочет делать чтото с нуля и берет уже готовое.
Неуданчный пример. Наследование (inheritance) в биологии и генетике - совершенно другая тема. И к наследованию
в С++/Java/C# (к примеру) имеет весьма отдалённое отношение. Это - суть терминология которую нужно понимать
в контексте а не в отрыве. Нет никакого наследования. Есть наследование в ООП и есть наследование в генетике .
...
Рейтинг: 0 / 0
Фундамент ООП
    #37984359
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton наследование в генетике .можно поставить в аналогию с "прототипами".
...
Рейтинг: 0 / 0
Фундамент ООП
    #37986451
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> /Наследование / - Наследование продиктовано принципами размножения и выживания
> Отнаследовался например сын от отца переняв основные его черты.

Ты забыл уточнить, как от того же отца отнаследовалась его дочь, переняв все его
основные черты -- ну там бороду, отсутствие грудей и присутствие чего-то ещё...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Фундамент ООП
    #37986545
WPF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, я против наследования, очень плохая привычка наследовать классы, наследовать надо абстракции.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37986560
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WPFКстати, я против наследования реализации, очень плохая привычка наследовать классы, наследовать надо абстракции.

fix
...
Рейтинг: 0 / 0
Фундамент ООП
    #37986781
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WPFКстати, я против наследования, очень плохая привычка наследовать классы, наследовать надо абстракции.

Код: java
1.
2.
3.
4.
MyString.java:1: cannot inherit from final java.lang.String
public class MyString extends String{
                              ^
1 error



Вот так вот сурово поступили Sun(Oracle) с попыткой унаследовать
финализированное. Так что механизмы есть.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37986782
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonWPFКстати, я против наследования, очень плохая привычка наследовать классы, наследовать надо абстракции.

Код: java
1.
2.
3.
4.
MyString.java:1: cannot inherit from final java.lang.String
public class MyString extends String{
                              ^
1 error




Вот так вот сурово поступили Sun(Oracle) с попыткой унаследовать
финализированное. Так что механизмы есть.Да, но где здесь механизм наследовать абстракцию?
"String" ведь не интерфейс, а именно класс. Они запретили любое наследование, а это не выход.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37986852
WPF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открою еще одну свою маленькую профессиональную тайну: в большинстве случаев следует применять очень простой подход - абстрактные классы отвечают на вопрос что?, а интерфейсы на вопрос как?
Логика приложения сразу становиться понятной. А базовый класс в большинстве случаев зло.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37986853
WPF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И следующий момент - полиморфизм, который недостижим для большинства программистов. Возможность использования полиморфизма появляется только при развитой абстракции. Верный признак недоразвитой абстракции это использование всяких if-ов и switch/case и подобного мусора. Есть одно правило, если пришлось использовать оператор if - логика приложения написано неправильно. В этом случае следует остановиться и пересмотреть абстракции, где-то имеется ошибка.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37986895
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WPFВерный признак недоразвитой абстракции это использование всяких if-ов и switch/case и подобного мусора. Есть одно правило, если пришлось использовать оператор if - логика приложения написано неправильно. В этом случае следует остановиться и пересмотреть абстракции, где-то имеется ошибка.
Здесь надо дополнить или уточнить. Ведь если бездумно применять
RCWP то можно порождить кучу ненужных сущностей что
только усложняет и запутывает код. Элементарно... если
у вас блок if/switch/case проверяющий принадлежность
к субклассу встречается только в 1 методе это то еще
не повод переделывать всю логику под полиморфизм.

Полиморфизм в моём понимании это не парадигма и не идеология
а just tool. Просто инструмент.

И принцип Оккама пока еще работает.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37986983
WPF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллега, соглашусь с вами, в механическом применении этого принципа возникают перекосы и отклонения, что можно было бы определить так - чем больше сущностей, тем меньше взаимных зависимостей, и чем меньше сущностей, тем больше зависимостей. Эта аксиома волнует многих мыслителей, и программистов в том числе. Поэтому приходится держаться оптимального соотношения при проектировании, на которое, как правило, влияет соотношение время/деньги.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37986987
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WPFИ следующий момент - полиморфизм, который недостижим для большинства программистов. Возможность использования полиморфизма появляется только при развитой абстракции. Верный признак недоразвитой абстракции это использование всяких if-ов и switch/case и подобного мусора. Есть одно правило, если пришлось использовать оператор if - логика приложения написано неправильно. В этом случае следует остановиться и пересмотреть абстракции, где-то имеется ошибка.

Тут все спорно. Нужно начать с того, что нам надо. Что-бы в программу легко добавлялись новые типы, или что-бы добавлялись новый функционал для фиксированного количества типов.

Так вот, второе хоть и не ООП, но иногда очень нужно, а потому приходится использовать всякие if-ы и switch/case-ы.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37986993
WPF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что касается полиморфизма, так полиформизм нельзя имплементить, полиморфизм возникает, когда структура приложения достигает вершин абстракции, то есть когда соблюдены условия. Тема эта сложная, но вот один маячок я нашел, это тестирование, не обязательно реальное, тест можно написать и в своем воображении, так вот если класс проходит тест без зависимостей, то есть если классу для выполнения не требуются другие классы (мокинг не в счет), значит класс (а следовательно связанные с ним абстракции) определен верно.
...
Рейтинг: 0 / 0
Фундамент ООП
    #37990181
rovan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WPFИ следующий момент - полиморфизм, который недостижим для большинства программистов. Возможность использования полиморфизма появляется только при развитой абстракции. Верный признак недоразвитой абстракции это использование всяких if-ов и switch/case и подобного мусора. Есть одно правило, если пришлось использовать оператор if - логика приложения написано неправильно. В этом случае следует остановиться и пересмотреть абстракции, где-то имеется ошибка.

Не могли бы вы иллюстрировать своё высказывание небольшим примером?

Вводная:
Допустим, необходимо реализовать пересылку сообщений между объектами разных классов, с последующей обработкой.

Получатели:
Все классы получателей имеют общего предка.
Каждый класс получателей может обрабатывать неограниченное количество классов сообщений.
Для каждого сообщения имеются специфические алгоритмы обработки, свои у каждого класса получателей.
Сообщения:
Все классы сообщений имеют общего предка.

Интересует:
1. Механизм доставки сообщения получателю.
2. Обработка доставленного сообщения получателем. Конкретнее - передача сообщения нужному обработчику (вид обработчика непринципиален - метод получателя, дочерний объект, что-то еще).

Псевдокодом, либо любым удобным для вас ЯП.

Спасибо.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Фундамент ООП
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]