ANDROID_LIVE Telegram 635
​​Dependency Injection vs Service Locator
#patterns

МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Π΅ этих Π΄Π²ΡƒΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, ΠΎΠ½ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹, Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ β€” ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΊΠΎΠ΄Π°. Или простым языком β€” ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΡŽΡ‚ ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Ρ… участков ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΡƒΡŽ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ простоту.

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π΅Ρ‰Ρ‘ ΠΌΠ΅Π½Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Но Π΄Π°Π²Π°ΠΉΡ‚Π΅ остановимся Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ достоинства ΠΈ нСдостатки ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ….

Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ этих ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² Π½Π°ΡˆΡ‘Π» Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

🟒 Ссли ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ DI ΠΎΠ΄Π½ΠΈΠΌ словом, Ρ‚ΠΎ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ слово Β«ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒΒ». И Π² самом Π΄Π΅Π»Π΅, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ DI ΠΌΡ‹ просто Π΄Π°Ρ‘ΠΌ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ классу House Π½ΡƒΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Door ΠΈ Window, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π΅ΠΌΡƒ Π² конструктор.

val window = Window()
val door = Door()
val house = House(window, door)


DI ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ зависимости ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΌ ΠΊΠ΅ΠΌ-Ρ‚ΠΎ. И Π½Π°ΡˆΠ΅ΠΌΡƒ классу Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, Π³Π΄Π΅ этот ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ зависимости Π±Π΅Ρ€Ρ‘Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΌΡ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ для DI конструктор, Π° Π½Π΅ setter.

πŸ”΅ Ссли ΠΌΡ‹ описываСм Service Locator ΠΎΠ΄Π½ΠΈΠΌ словом, Ρ‚ΠΎ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ слово Β«Π²Π·ΡΡ‚ΡŒΒ». Π’Π°ΠΊ, ΠΈ Π΅ΡΡ‚ΡŒ: Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ класс (Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€, Ρ„Π°Π±Ρ€ΠΈΠΊΠ°) Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ Π±Π΅Ρ€Ρ‘ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π½Π°ΡˆΠ΅ΠΌΡƒ классу. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅, ΠΌΡ‹ Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса House Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ дальшС.

val house = serviceLocator.get(House::class)

Π’ΠΎ Π΅ΡΡ‚ΡŒ Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ β€” это нСкая Ρ„Π°Π±Ρ€ΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наполняСтся Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ. Π’Π°ΠΊΠΆΠ΅ Π½Π°ΡˆΠ΅ΠΌΡƒ Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Ρƒ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΈ ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ» эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Π½Π΅Π³ΠΎ, Π΅Π³ΠΎ главная Π·Π°Π΄Π°Ρ‡Π° β€” ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ссли ΠΎΠ½ Π΅ΡΡ‚ΡŒ.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для внСдрСния зависимостСй, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Dagger, Hilt, Koin, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ±Π° этих ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π² связкС, хотя это ΠΈ Π½Π΅ всСгда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд. Но ΠΊΠ°ΠΊ ΠΌΠ½Π΅ каТСтся β€” это Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, вСдь ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅Π΅Ρ‚ свои ΠΏΠ»ΡŽΡΡ‹, Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ сосущСствованиС ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ число нСдостатков.



tgoop.com/android_live/635
Create:
Last Update:

​​Dependency Injection vs Service Locator
#patterns

МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Π΅ этих Π΄Π²ΡƒΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, ΠΎΠ½ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹, Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ β€” ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΊΠΎΠ΄Π°. Или простым языком β€” ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΡŽΡ‚ ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Ρ… участков ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΡƒΡŽ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ простоту.

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π΅Ρ‰Ρ‘ ΠΌΠ΅Π½Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Но Π΄Π°Π²Π°ΠΉΡ‚Π΅ остановимся Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ достоинства ΠΈ нСдостатки ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ….

Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ этих ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² Π½Π°ΡˆΡ‘Π» Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

🟒 Ссли ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ DI ΠΎΠ΄Π½ΠΈΠΌ словом, Ρ‚ΠΎ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ слово Β«ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒΒ». И Π² самом Π΄Π΅Π»Π΅, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ DI ΠΌΡ‹ просто Π΄Π°Ρ‘ΠΌ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ классу House Π½ΡƒΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Door ΠΈ Window, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π΅ΠΌΡƒ Π² конструктор.

val window = Window()
val door = Door()
val house = House(window, door)


DI ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ зависимости ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΌ ΠΊΠ΅ΠΌ-Ρ‚ΠΎ. И Π½Π°ΡˆΠ΅ΠΌΡƒ классу Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, Π³Π΄Π΅ этот ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ зависимости Π±Π΅Ρ€Ρ‘Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΌΡ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ для DI конструктор, Π° Π½Π΅ setter.

πŸ”΅ Ссли ΠΌΡ‹ описываСм Service Locator ΠΎΠ΄Π½ΠΈΠΌ словом, Ρ‚ΠΎ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ слово Β«Π²Π·ΡΡ‚ΡŒΒ». Π’Π°ΠΊ, ΠΈ Π΅ΡΡ‚ΡŒ: Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ класс (Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€, Ρ„Π°Π±Ρ€ΠΈΠΊΠ°) Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ Π±Π΅Ρ€Ρ‘ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π½Π°ΡˆΠ΅ΠΌΡƒ классу. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅, ΠΌΡ‹ Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса House Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ дальшС.

val house = serviceLocator.get(House::class)

Π’ΠΎ Π΅ΡΡ‚ΡŒ Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ β€” это нСкая Ρ„Π°Π±Ρ€ΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наполняСтся Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ. Π’Π°ΠΊΠΆΠ΅ Π½Π°ΡˆΠ΅ΠΌΡƒ Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Ρƒ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΈ ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ» эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Π½Π΅Π³ΠΎ, Π΅Π³ΠΎ главная Π·Π°Π΄Π°Ρ‡Π° β€” ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ссли ΠΎΠ½ Π΅ΡΡ‚ΡŒ.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для внСдрСния зависимостСй, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Dagger, Hilt, Koin, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ±Π° этих ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π² связкС, хотя это ΠΈ Π½Π΅ всСгда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд. Но ΠΊΠ°ΠΊ ΠΌΠ½Π΅ каТСтся β€” это Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, вСдь ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅Π΅Ρ‚ свои ΠΏΠ»ΡŽΡΡ‹, Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ сосущСствованиС ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ число нСдостатков.

BY Android Live πŸ€–




Share with your friend now:
tgoop.com/android_live/635

View MORE
Open in Telegram


Telegram News

Date: |

Healing through screaming therapy A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select β€œCreate Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. Add up to 50 administrators 6How to manage your Telegram channel? With the sharp downturn in the crypto market, yelling has become a coping mechanism for many crypto traders. This screaming therapy became popular after the surge of Goblintown Ethereum NFTs at the end of May or early June. Here, holders made incoherent groaning sounds in late-night Twitter spaces. They also role-played as urine-loving Goblin creatures.
from us


Telegram Android Live πŸ€–
FROM American