
Ivan
15.03.2017
16:41:21
т.е. изменение внутренностей объекта приведет к изменению кода который ипсользует этот объект
нужно писать классы таким образом чтобы они были как можно более закрытыми от внешнего мира

Anton
15.03.2017
16:42:04
Как именно?
Что отдавать?

Google

Ivan
15.03.2017
16:42:12
поэтому делать getInt не правильно нужно делать метод например printTemperatur(Format format)
который выведет данные в нужно формате

Anton
15.03.2017
16:42:38
Нафиг мне принт когда я хочу например среднюю температуру посчитать?

Берял
15.03.2017
16:42:56
Как именно?
ты как-то неадекватно себя ведешь, попробуй менее резким тоном и постарайся понять _не_свою_ точку зрения

Ivan
15.03.2017
16:42:58
тогда у объекта будет метода avgTemperature или что нибудь такое

Anton
15.03.2017
16:43:02
Или скажем в кельвины ее перевести
А если не будет такого метода?

Ivan
15.03.2017
16:43:41
значит автор класса решил что он не нужен
и это его право
потому что он его писал
значит ты не так понимаешь как этот код использовать

Anton
15.03.2017
16:44:08
Или просто автор недоглядел
Или просто автор не знал что мне будет нужно

Google

Ivan
15.03.2017
16:44:38
это его позиция
я бы посоветовал ознакомиться с его трудами плотнее там вполне адекватные мысли и в этом чате многие не согласны с чем то но в целом понимают о чем автор

Берял
15.03.2017
16:45:03
или использовать его класс так как этого хочешь ты, а не он

Anton
15.03.2017
16:46:22
А потом мы сидим и переводим Joda Time в стандартный DateTime
Потому что ктото не подумал

Ivan
15.03.2017
16:47:02
зачем переводите? Joda Time работает

Anton
15.03.2017
16:47:28
Потому что в другом месте нужен DateTime
Такая позиция автора класса :))))

Ivan
15.03.2017
16:48:00
если бы у вас объекты не отдавали данные направо и налево
то ничего такого бы не было
а то привыкли getLocalDate и поехали

Anton
15.03.2017
16:48:16
А что они должны отдавать?
Я так и не услышал

Ivan
15.03.2017
16:48:22
они должны делать свою работу
внутри себя
например печатать что нибудь в OutputStream

Anton
15.03.2017
16:48:43
А мою работу кто будет делать?

Ivan
15.03.2017
16:48:44
или еще что нибудь, считать что то
лучшие техники программирования с сеттерами и геттерами

Google

Ivan
15.03.2017
16:49:20
пишешь проект первые два месяца а потом хочешь уволиться
@achikin у меня встречный вопрос, зачем придумали C++ если до этого был С с структурами, типами, методами внутри структур?
писали бы и писали на C, а то потом еще и Java написали

Anton
15.03.2017
16:56:59
Не поймите меня неправильно
Идея конечно годная и не новая: инкапсуляция она и есть инкапсуляция.
У меня вопросы по практическому применению.
Потому что я не на идеях пишу, а на конкретных языках.

Ivan
15.03.2017
16:58:22
у автора есть свой наработанный код который он часто рекламирует, https://github.com/yegor256/takes
вот например

Anton
15.03.2017
16:58:31
Нектороые обратно на С пересели
Есть еще Objective C

Denis
15.03.2017
16:58:52

Anton
15.03.2017
16:59:05
Вот и ответ.

Ivan
15.03.2017
17:04:44
я говорил о другом, чем бы ООП отличалось от структурного языка если бы в него не были заложены какие то основополащающие идеи, например инкапсуляция или полиморфизм? да ничем, был бы тем же структурным языком, только с классами и методами, но сейчас многие отказаилсь от ООП как такового в Java, многие юзают JPA который предлагает юзать объекты просто как хранилища данных, для структурных языков это нормально, для ФП языков тоже, для ООП плохо так как нарушает одну из главных идей

Anton
15.03.2017
17:05:33
Или сами идеи ООП - это плохо, поэтому и отказались.

Ivan
15.03.2017
17:06:14
ну раз мы пишем на Java, который ООП то в рамках этого языка должны придерживаться идей ООП прежде всего, в ином случае проще уйти на Scala/Lisp/C/Go/Rust и т.д.
т.е. нет причин оставаться на Java

Anton
15.03.2017
17:06:34
полиморфизм например есть в кложе
Нет не должны мы ничего придерживаться.

Google

Anton
15.03.2017
17:07:02
А не то что?

Ivan
15.03.2017
17:07:14
а не то зачем юзать Java?

Anton
15.03.2017
17:07:23
Много причин
Одна из самых мачурных платформ например
Много библиотек
Просто найти людей
Огромное легаси

Ivan
15.03.2017
17:10:00
есть куча языков под JVM, можно продолжать писать и на Java как раньше на C и получать все те же проблемы что были есть и будут в структурных языках, а можно попытаться понять тру ООП и изменить свою жизнь(и код) к лучшему

Anton
15.03.2017
17:10:36
или не изменить

Ivan
15.03.2017
17:10:39
это к тому что наш спор уже скатился в демагогию

Admin
ERROR: S client not available

Anton
15.03.2017
17:11:07
Потому что новые языки на JVM в основном решают проблемы Java
Избавиться от которых средствами самой Java не получается

Ivan
15.03.2017
17:11:54
ну у этих языков у самих куча проблем
что уж говорить
они может и решили частично какие то проблемы но добавили новых
и поэтому многие уходят назад в Java

Anton
15.03.2017
17:13:37
Ну кто ж спорит.
Но наличие примитивных типов в java как бы намекает, что это не совсем ООП язык

Ivan
15.03.2017
17:14:43
я согласен но мое мнение что лучше уж было бы как в Scala есть объект Double или Int и все

Google

Anton
15.03.2017
17:14:43
И что видимо парадигма ООП не совсем соответствует реалиям.

Ivan
15.03.2017
17:14:48
точнее класс

Anton
15.03.2017
17:15:00
А чем бы это помогло в примере с Temperature?

Ivan
15.03.2017
17:15:01
т.е. я считаю примитивы это ошибка

Alexander
15.03.2017
17:15:18
а как простите жить с перфомансом, без примитивов?

Anton
15.03.2017
17:15:18
если бы я класс Int заменил на класс Double

Ivan
15.03.2017
17:15:34
где там примитив а где нет
скала же смогла его научить

Alexander
15.03.2017
17:15:53
я не знаю скалы, и что она может по этому поводу

Anton
15.03.2017
17:15:55
хаха

Ivan
15.03.2017
17:16:25
я в курсе что примитивы из за перформанса но нельзя сделать все быстро дешево и качественно нужно чем то поступиться

Anton
15.03.2017
17:16:36
о том и речь
идеи идеями

Ivan
15.03.2017
17:16:41
вот в java решили сделать int примитивом и теперь у нас есть int и Integer
и странные дженерики

Anton
15.03.2017
17:16:59
но мы тут код пишем боевой а не косяки в вудстоке курим

Alexander
15.03.2017
17:17:02
если бы в джаве не было int, то фраза “джава медленная” была бы до сих пор правда:)

Ivan
15.03.2017
17:17:34
кстати в java есть стримы как в фп языках, т.е. джава у нас вообще мультипарадигменный язык теперь?

Anton
15.03.2017
17:21:18
ды ваще да
и лямбды там есть

Ivan
15.03.2017
17:22:27
А чем бы это помогло в примере с Temperature?
class Temperature {
private int t;
public String toString() {
return String.format("%d F", this.t);
}
}
если в этом классе изменить int на double то код который использует метод toString вообще ничего не почувствует,
но если бы у нас класс Temperature был бы
class Temperature {
private int t;
public int getT() { return this.t; }
public void setT(int t) { this.t = t; }
}
то при изменении типа с int на double у нас бы перестал работать код который юзает методы getT и setT

Anton
15.03.2017
17:22:59
так если мне не нужен toString