Size: a a a

Angular - русскоговорящее сообщество

2019 December 19

G

Galeups in Angular - русскоговорящее сообщество
кстати про сервис модалок или обработку ошибок с модалками. Как правильнее и проще и чище? единый сервис отображения модалок, или все ж разделить?
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Разделить
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Вот кстати для модалок и пришлось делать шину событий. Потому что модалка не может дернуть сервис из которого была вызвана, чтобы включить другую модалку. Циркулярка возникает.
источник

П

Пёс Цифрового Сопротивления in Angular - русскоговорящее сообщество
Galeups
у них же нет нгдестрой
У сервисов есть нгДестрой
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Anton Shvets
Вот кстати для модалок и пришлось делать шину событий. Потому что модалка не может дернуть сервис из которого была вызвана, чтобы включить другую модалку. Циркулярка возникает.
Либо такие вещи можно с помощью абстракций разруливать, тоже как хороший вариант
источник

G

Galeups in Angular - русскоговорящее сообщество
Вертихвост キバ
Либо такие вещи можно с помощью абстракций разруливать, тоже как хороший вариант
а можно на пальцах и в общих чертах?
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Главное не закопаться слишком в абстракциях в трех диалоговых окнах :)
Я сначала хотел универсальный вызов, потом забил, предпочитаю конкретику. А ля сегрегация интерфесов
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Galeups
а можно на пальцах и в общих чертах?
На пальцах примерно так

На верхнем рисунке два класса зависят друг от друга, и поэтому получаем ошибку с circular dependency

На нижнем рисунке левый класс зависит от абстракции, а правый класс реализует абстракцию и зависит от левого класса
источник

G

Galeups in Angular - русскоговорящее сообщество
а это прям абстрактный класс? или обычный, но от которого потом мы наследуемся
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Абстрактный, в котором задаются все публичные методы, которые должны быть реализованы в реализации
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Galeups
а это прям абстрактный класс? или обычный, но от которого потом мы наследуемся
А в чем разница? :) абстрактный просто не используют сам по себе
источник

G

Galeups in Angular - русскоговорящее сообщество
ну абстрактный мы вроде не можем использовать, а тольок от него наследоваться
источник

G

Galeups in Angular - русскоговорящее сообщество
это типа шаблона для создания на его основе
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Galeups
это типа шаблона для создания на его основе
Абстрактный в ts может сам реализовать методы. Неабстрактные
источник

G

Galeups in Angular - русскоговорящее сообщество
блин, вот еще ни разу не реализовывал всякое наследование от компонентов и сервисов
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Galeups
это типа шаблона для создания на его основе
Это просто контракт, когда мы хотим четко обозначить методы, которые должны быть доступны, и которые мы можем вызывать. Например, если это сервис с модалками, то в абстракции будет Открыть модалку и Закрыть модалку.

У меня есть вот такое под рукой. MessageBus говорит, какие методы должны быть реализованы:
https://github.com/thekiba/angular-platform-cloud/blob/master/projects/platform-cloud/src/lib/shared/message-bus.ts

ServerMessageBus и BrowserMessageBus реализуют эти методы вот тут:
https://github.com/thekiba/angular-platform-cloud/blob/master/projects/platform-cloud/src/lib/server/server-bus.ts
https://github.com/thekiba/angular-platform-cloud/blob/master/projects/platform-cloud/src/lib/browser/browser-message-bus.ts

А дальше взаимодействите происходит через абстракцию. Вот тут мы говорим, что хотим получить MessageBus:
https://github.com/thekiba/angular-platform-cloud/blob/master/projects/platform-cloud/src/lib/server/server-renderer-adapter.ts#L18

И мы знаем, что у него будут только два метода, поэтому можем использовать только их, и вот один из них:
https://github.com/thekiba/angular-platform-cloud/blob/master/projects/platform-cloud/src/lib/server/server-renderer-adapter.ts#L138
источник

G

Galeups in Angular - русскоговорящее сообщество
вот я  удачно зашел ))) 👍
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
Galeups
я просто увидел один раз подписку в сервисе  и думаю "А что, так можно было?"  ))
есть такие кейсы, например подписка на все время жизни приложения, не привязанная ко вьюшке например. Но редко)
источник

EK

Eugene Kalashnikov in Angular - русскоговорящее сообщество
Galeups
блин, вот еще ни разу не реализовывал всякое наследование от компонентов и сервисов
Уточнение. Речь идет не о наследовании от компонента или сервиса, а именно от отдельного класса(абстрактного в данном случае).
источник

G

Galeups in Angular - русскоговорящее сообщество
да, неправильно выразился. А как это тогда оформляется в файловой структуре? все абстракции кладутся в отдельную папку? 😊
источник