@oop_ru

Страница 70 из 785
Alexey
18.01.2017
16:12:43
тс котлин напоминает, кстати

прям очень

Sergey
18.01.2017
16:13:04
еще swift кстати

Alexey
18.01.2017
16:14:00
в тс есть опшналы?

Google
Aleh
18.01.2017
16:18:01
в тс есть опшналы?
можешь с примером? Это аналог Maybe?

guga
18.01.2017
16:20:26
можешь с примером? Это аналог Maybe?
Это что-то аля Optional[T] у которого есть два наследника Some[T] и None[Nothing]

юзают для работы с null

Aleh
18.01.2017
16:21:00
ага, короче Maybe из haskell

type Maybe a = Just a | Nothing

guga
18.01.2017
16:21:32
ну я не силён в хаскеле ?

Aleh
18.01.2017
16:22:45
ну, если null воспринимать как Nothing, то type Optional<T> = T | null;

guga
18.01.2017
16:22:49
ну и стандарный набор операций как в коллекции

Aleh
18.01.2017
16:22:53
там есть просто strictNullChecks

guga
18.01.2017
16:22:58
+ orElse, orThorw

Alexey
18.01.2017
16:23:21
я вообще про опшнал оператор, как в свифте или котлине

guga
18.01.2017
16:23:30
Nothing просто bottom type для всех типов

Google
Aleh
18.01.2017
16:23:31
идея ж ts & flow, не эмитить ничего лишнего в рантайм

type A = { a?: number } - здесь поле a необязательное

Sergey
18.01.2017
16:31:51
nullable типы в котлине удобнее ведь монад

Aleh
18.01.2017
16:32:42
в ts короткий синтаксис для T | null | undefined не добавили, а в flow есть ?T

Артур Евгеньевич
19.01.2017
19:22:55
Здравствуйте! не надется яминутки поговорить об ООП?

Короче есть три разных сущности (class CModel yii1) свойства которых(поисковые параметры) частично пересеаются. Я хочу написать гибкий и удобный расшияемый поиск. Пока думаю создать интерфейс SearchInterface его реаализовывать в каждом из классов поиска под конкретную сущность. Также как вариант думаю создать интерфейс SearchebleItemInterface и реализовать его в каждой из модели, чтобы поиску было удобнее работать с ними. На данный момент все реализовано для кжадой сущности в контроллере вызывающим метод модели формы сущности что не очень верно най мой взгляд, но удобно для работы с пользовательскими данными. Вобщем буду рад конструктивным идеям и предложениям, т.к пока в голове каша + ситуация усугублятеся тем что yii я не очень знаю(совсем)

da horsie
19.01.2017
19:24:11
Казалось бы при чем здесь ооп?

Опиши задачу без привязки к языку и фреймворку

Роман
19.01.2017
19:26:44
Наверное это "Я хочу написать гибкий и удобный расшияемый поиск.".

Артур Евгеньевич
19.01.2017
19:30:56
есть похожие, но различающиеся сущности. К примеру СТО и МагазинЗапчастей. Под каждую сужность нужен свой раздел поиска. То есть каждый поисковой запрос нужно обработать и выбрать подходящие сущности. на даннымй момент весь код почти находится в контроллере, что не очень хорошо т.к идет дубляж кода, и в случае добалвения новых сущностей придется переписывать все. по поводу причем тут ооп - хочу снизить дубляж кода, то есть по факту создать такой сервис, который принимал бы в параметры нужную сущность, и запрос пользователя и возвращал нужный набор данных. Ну и хотелоь быэто все раскидать в нужные сервисы "по красоте"

F01134H
19.01.2017
19:38:07
спрошу тут

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

Если это так, то непонятно различие между интерфейсом и абстрактным классом

@f3ath ну ты же по-любому знаешь

F01134H
19.01.2017
19:42:24
Тебе ответили чо-нибудь по теме?

а то чет все молчат

обиделись что ли

Google
Роман
19.01.2017
19:42:59
Ну, я не думаю что тут есть телепаты, способные читать мои мысли. ?

Спят все наверное.

F01134H
19.01.2017
19:43:12
аа, так ты просто думал

?

вот это поворот

Артур Евгеньевич
19.01.2017
19:43:31
отсутствие свойств

F01134H
19.01.2017
19:43:59
множественное наследование
у интерфейса свойств типо нету?

Артур Евгеньевич
19.01.2017
19:44:01
ну и обязательность реализации

F01134H
19.01.2017
19:44:10
Ясно

Интересненько

Т.е. по сути создавать интерфейс для одного класса - не имеет смысла?

F01134H
19.01.2017
19:48:51
сложная тема эти интерфейсы

Роман
19.01.2017
19:50:14
F01134H
19.01.2017
19:50:41
да читал

но проблема таких учебников в том, что там какие-то анрил примеры)

Артур Евгеньевич
19.01.2017
19:51:01
Т.е. по сути создавать интерфейс для одного класса - не имеет смысла?
да, интерфейс нужен чтобы с объектами разных классов одинакого работать

Роман
19.01.2017
19:51:08
Я как раз читаю, там вроде всё как надо.

F01134H
19.01.2017
19:51:15
Ну ладно

я кстати тоже как раз читаю

Google
F01134H
19.01.2017
19:51:23
но до этого еще не дошел)

Роман
19.01.2017
19:57:16
F01134H
19.01.2017
19:57:29
Спасибо

Evgeniy
19.01.2017
19:58:33
Т.е. по сути создавать интерфейс для одного класса - не имеет смысла?
теоритически если реализация может потом поменятся

типо задел на будующее, но мало вероятно и на практике почти никогда потом не используется

F01134H
19.01.2017
20:06:11
Тогда интересно, зачем нужен абстрактный класс

ну, в смысле, в С++ то понятно, там нет интерфейсов вроде

Admin
ERROR: S client not available

F01134H
19.01.2017
20:06:35
вместо них абстрактные классы

f4rt~
19.01.2017
20:07:17
очень тонкая грань

Evgeniy
19.01.2017
20:07:42
абстрактный класс нужен там где есть абстрактные методы

или как базовый класс экземпляр который нельзя создать

F01134H
19.01.2017
20:08:37
интерфейс тоже нельзя создать)

Evgeniy
19.01.2017
20:08:57
в интерфейсе может быть реализация

(такое можно и в java сделать)

но пока не смотрим на java :D

Evgeniy
19.01.2017
20:09:41
ой в абстрактном классе

F01134H
19.01.2017
20:10:02
я кажется начинаю понимать

Google
Evgeniy
19.01.2017
20:10:05
в интерфейсе в java начиная с 8 версии можно фигарить код :D

но в тексте выше я имел ввиду абстрактный класс

просто думал о java и руки не то написали

разница в том что в случае интерфейсов

один класс может реализовывать несколько интерфейсов

в случае с абстратными классами только один абстрактный класс (один родитель в наследование)

ну опять же кроме C++ :D

F01134H
19.01.2017
20:11:41
ага

короче как обычный класс

можно обычные методы писать даже

Evgeniy
19.01.2017
20:12:19
в абстрактном классе да

можно даже в обычных методах вызывать абстрактные методы )

F01134H
19.01.2017
20:12:36
Наверное это для каких-то архисложных систем

Evgeniy
19.01.2017
20:12:43
абстрактный класс ?

F01134H
19.01.2017
20:12:47
Потому что я пока не вижу, где это можно юзать

да

Evgeniy
19.01.2017
20:13:00
неа

скорее interface более гибкий

и в более сложных ситуациях использовать его лучше

Страница 70 из 785