Size: a a a

2020 July 18

A

Anton in learn.java
Anton
Entry <K, V> не существует без HashMap
Неудачный пример наверное. Т.к. Entity все таки могут жить отдельно и это часть внешнего интерфейса.

Лучший пример в HashMap это массив самой таблицы - обьект Array:
transient Node<K,V>[] table;

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

A

Anton in learn.java
Что при изучении и применении ООП кажется вам самым непонятным?
Анонимный опрос
5%
Определения и границы принципов ООП
8%
Почему столько разночтений по базовым понятиям
5%
Как применять Инкапсуляцию и где остановиться
6%
Как применять Полиморфизм и как он работает в jvm
10%
Как применять Абстракцию и причём тут код
4%
Чем отдельные принципы ООП так важны для кодирования
10%
Когда завершить первую итерацию проектирования и начинать писать код
6%
В чем основные отличия подходов рефакторинга кода ООП от процедурного
13%
Какие есть альтернативы ООП на языке Java, какой код нельзя считать ООП
32%
Чем Object-oriented analysis and design (OOAD) отличается от OOP и что важнее понять программисту
Проголосовало: 155
источник

G

Galv in learn.java
Anton
Неудачный пример наверное. Т.к. Entity все таки могут жить отдельно и это часть внешнего интерфейса.

Лучший пример в HashMap это массив самой таблицы - обьект Array:
transient Node<K,V>[] table;

Таблица создается внутри, изменение её размера тоже происходит внутри, уничтожается вместе с HashMap. И даже при десериализации HashMap является неотъемлемой частью композита.
Доступ извне к таблице закрыт, следовательно отдельной ссылки на неё вне HashMap в принципе быть не может и это чистая композиция.
спасибо!
источник

DC

Denis Chikanov in learn.java
Galv
Добрый день! Какой пример из реального кода, без кошек и собачек, можно привести со связью объектов через композицию?
Есть у тебя какая-то модель с данными, и есть два варианта сообщения, которое ты хочешь отдать клиенту -
1) с "базовой" сущностью
2) "базовая" сущность + какие-то дополнительные поля (например, ты опросил внешний сервис о чём-то связанном)
Вот та вторая модель как правило выражается через композицию базовой сущности + дополнительных полей
источник

DC

Denis Chikanov in learn.java
Эд
Да, поскольку класс ответственен за создание зависимости
Класс совершенно необязательно ответственен за создание зависимости, если в этом классе применяется композиция, солид в порядке
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
Anton
Что при изучении и применении ООП кажется вам самым непонятным?
Анонимный опрос
5%
Определения и границы принципов ООП
8%
Почему столько разночтений по базовым понятиям
5%
Как применять Инкапсуляцию и где остановиться
6%
Как применять Полиморфизм и как он работает в jvm
10%
Как применять Абстракцию и причём тут код
4%
Чем отдельные принципы ООП так важны для кодирования
10%
Когда завершить первую итерацию проектирования и начинать писать код
6%
В чем основные отличия подходов рефакторинга кода ООП от процедурного
13%
Какие есть альтернативы ООП на языке Java, какой код нельзя считать ООП
32%
Чем Object-oriented analysis and design (OOAD) отличается от OOP и что важнее понять программисту
Проголосовало: 155
Какая максимальная вложенность декораторов допустима :)
источник

A

Anton in learn.java
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Какая максимальная вложенность декораторов допустима :)
Какие еще декораторы, только вложенные функции Х)
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
Anton
Какие еще декораторы, только вложенные функции Х)
источник

Э

Эд in learn.java
Почему делают приватными поля, а потом генерят сеттеры и геттеры? Это долбоебизм
источник

Э

Эд in learn.java
И много фреймворков на этом помешено
источник

i

infinity in learn.java
Эд
Почему делают приватными поля, а потом генерят сеттеры и геттеры? Это долбоебизм
Ооп не для тебя, меняй язык)
источник

i

infinity in learn.java
Эд
Почему делают приватными поля, а потом генерят сеттеры и геттеры? Это долбоебизм
Это называется инкапсуляция
источник

A

Anton in learn.java
Эд
Почему делают приватными поля, а потом генерят сеттеры и геттеры? Это долбоебизм
Есть же JavaBeans Spec и эту спецификацию применяют масово, в т.ч. и для мэпинга json
источник

Е

Евгений in learn.java
infinity
Это называется инкапсуляция
Да, только постоянно натыкаюсь на споры, что это прошлый век. Просто много сторонних вещей работает на этих механизмах
источник

A

Anton in learn.java
infinity
Это называется инкапсуляция
Инкапсуляция не в этом.

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

S

Sempra in learn.java
Сап парни , не до конца понял аннотации , в книге шилдта был пример , где он создает аннотацию и при ее объявлении задает параметры , куда эти параметры идут ? Это вроде как методы , а не поля ... https://pastebin.com/abxutptk
источник

S

Sempra in learn.java
или они работают как сеттеры ?
источник

A

Anton in learn.java
Sempra
или они работают как сеттеры ?
Стоит почитать как работают аннатации. При обработке обьекта какой то другой код считывает аннотации и производит над кодом определенные действия, например валидацию или внедрение значения. В исходниках обработчиков вся эта магия есть, сами аннотации просто маркеры со свойствами.
источник

Э

Эд in learn.java
infinity
Это называется инкапсуляция
Скажи почему не сделать поле публичным и не генерить для него гет сет. Потому что гладиолус
источник

S

Sempra in learn.java
Anton
Стоит почитать как работают аннатации. При обработке обьекта какой то другой код считывает аннотации и производит над кодом определенные действия, например валидацию или внедрение значения. В исходниках обработчиков вся эта магия есть, сами аннотации просто маркеры со свойствами.
Окей,спасибо!
источник