Skip to content

Latest commit

Β 

History

History
345 lines (325 loc) Β· 61.4 KB

README.md

File metadata and controls

345 lines (325 loc) Β· 61.4 KB

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования Π½Π° Java

Java CI License MIT Lines of Code Coverage Join the chat at https://gitter.im/iluwatar/java-design-patterns

All Contributors

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования - Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния ΠΈΠ»ΠΈ систСмы.

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡƒΡ‚Π΅ΠΌ прСдоставлСния ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ/ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌ.

ИспользованиС шаблонов ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ частых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… происходят ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. А Π΅Ρ‰Π΅ это повысит Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° для программистов ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ², Π·Π½Π°ΠΊΠΎΠΌΡ‹Ρ… с шаблонами.

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’ этом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования Π½Π° Java. Они Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ программистами ΠΈΠ· open source сообщСства. Π¨Π°Π±Π»ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½ ΠΈΠ· Π΅Π³ΠΎ описания ΠΈΠ»ΠΈ просмотром Π΅Π³ΠΎ исходного ΠΊΠΎΠ΄Π°. Код Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ шаблонС. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ самыС популярныС (ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠ΅ огонь, Π²ΠΎΠ΄Ρƒ ΠΈ ΠΌΠ΅Π΄Π½Ρ‹Π΅ Ρ‚Ρ€ΡƒΠ±Ρ‹) Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, основанныС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ПО с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ΠΌ Ρ‡Π΅ΠΌ Π½Ρ‹Ρ€Π½ΡƒΡ‚ΡŒ Π² ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», Ρ‚Π΅Π±Π΅ слСдуСт ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО(Π°Π½Π³Π»).

ВсС конструкции Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ максимально простыми. НС Π΄Π΅Π»Π°ΠΉ лишнюю Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, которая скорСй всСго Π½Π΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, Π° просто создай ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΡˆΡ‚ΡƒΠΊΡƒ, Ρ‡Ρ‚ΠΎ смоТСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π£ΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, лишь ΠΊΠΎΠ³Π΄Π° ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½Π°.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с этими концСпциями, приступайтС ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ доступных шаблонов проСктирования(Π°Π½Π³Π») Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

  • Π˜Ρ‰ΠΈΡ‚Π΅ шаблон ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. НС смогли Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°ΠΊΠΎΠΉ? Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚Π΅ ΠΎΠ± этом здСсь.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ тэги, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Performance, Gang of Four ΠΈΠ»ΠΈ Data access.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ шаблонов Creational, Behavioral ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

НадССмся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, прСдставлСнныС здСсь Π±ΡƒΠ΄ΡƒΡ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΈ Π½Π°ΠΉΠ΄ΡƒΡ‚ мСсто Π² Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ ΠΎΡ‚ ΠΈΡ… изучСния, ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΌΡ‹ Π²ΠΎ врСмя ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Как ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ участиС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

Если Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ участиС Π² ΠΆΠΈΠ·Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, вся полСзная информация находится Π½Π° нашСй Π²ΠΈΠΊΠΈ(Π°Π½Π³Π»). ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° Ρ‚Π²ΠΎΠΈ вопросы Π² Ρ‡Π°Ρ‚Π΅ Gitter.

ЛицСнзия

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ основываСтся Π½Π° тСзисах Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ MIT.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ


Ilkka SeppΓ€lΓ€

πŸ“† 🚧 πŸ–‹

amit1307

πŸ’»

Narendra Pathai

πŸ’» πŸ€” πŸ‘€

Jeroen Meulemeester

πŸ’»

Joseph McCarthy

πŸ’»

Thomas

πŸ’»

Anurag Agarwal

πŸ’»

Markus Moser

🎨 πŸ’» πŸ€”

Sabiq Ihab

πŸ’»

Amit Dixit

πŸ’»

Piyush Kailash Chaudhari

πŸ’»

joshzambales

πŸ’»

Kamil Pietruszka

πŸ’»

Zafar Khaydarov

πŸ’» πŸ“–

Paul Campbell

πŸ’»

Argyro Sioziou

πŸ’»

TylerMcConville

πŸ’»

saksham93

πŸ’»

nikhilbarar

πŸ’»

Colin But

πŸ’»

Ruslan

πŸ’»

Juho Kang

πŸ’»

Dheeraj Mummareddy

πŸ’»

Bernardo Sulzbach

πŸ’»

Aleksandar Dudukovic

πŸ’»

Yusuf Aytaş

πŸ’»

MihΓ‘ly Kuprivecz

πŸ’»

Stanislav Kapinus

πŸ’»

GVSharma

πŸ’»

Srđan Paunović

πŸ’»

Petros G. Sideris

πŸ’»

Pramod Gupta

πŸ‘€

Amarnath Chandana

πŸ’»

Anurag870

πŸ’» πŸ“–

Wes Gilleland

πŸ’»

Harshraj Thakor

πŸ’»

Martin Vandenbussche

πŸ’»

Alexandru Somai

πŸ’»

Artur Mogozov

πŸ’»

anthony

πŸ’»

Christian Cygnus

πŸ’»

Dima Gubin

πŸ’»

Joshua Jimenez

πŸ’»

Kai Winter

πŸ’»

lbroman

πŸ’»

Przemek

πŸ’»

Prafful Agarwal

πŸ–‹

Sanket Panhale

πŸ–‹

staillebois

πŸ’»

KrisztiΓ‘n Nagy

πŸ’»

Alexander Ivanov

πŸ’»

Yosfik Alqadri

πŸ’»

AgustΓ­ Becerra MilΓ 

πŸ’»

Juan Manuel SuΓ‘rez

πŸ’»

Luigi Cortese

πŸ’»

Katarzyna Rzepecka

πŸ’»

adamski.pro

πŸ’»

Shengli Bai

πŸ’»

Boris

πŸ’»

Dmitry Avershin

πŸ’»

靳阳

πŸ’»

hoangnam2261

πŸ’»

Arpit Jain

πŸ’»

JΓ³n Ingi SveinbjΓΆrnsson

πŸ’»

Kirill Vlasov

πŸ’»

Mitchell Irvin

πŸ’»

Ranjeet

πŸ’»

PhoenixYip

πŸ’»

M Saif Asif

πŸ’»

kanwarpreet25

πŸ’»

Leon Mak

πŸ’»

Per Wramdemark

πŸ’»

Evan Sia Wai Suan

πŸ’»

AnaghaSasikumar

πŸ’»

Christoffer Hamberg

πŸ’»

Dominik Gruntz

πŸ’»

Hannes

πŸ’»

Leo GutiΓ©rrez RamΓ­rez

πŸ’»

Zhang WH

πŸ’»

Christopher O'Connell

πŸ’»

George Mavroeidis

πŸ’»

Hemant Bothra

πŸ’» 🎨

Kevin Peters

πŸ’»

George Aristy

πŸ’»

Mahendran Mookkiah

πŸ’»

Azureyjt

πŸ’»

gans

πŸ’»

Matt

πŸ–‹

Gopinath Langote

πŸ’»

Hoswey

πŸ’»

Amit Pandey

πŸ’»

gwildor28

πŸ–‹

η”°ζ΅©

πŸ–‹

Stamatis Pitsios

πŸ’»

qza

πŸ’»

Rodolfo Forte

πŸ–‹

Ankur Kaushal

πŸ’»

Ovidijus Okinskas

πŸ’»

Robert Kasperczyk

πŸ’»

Tapio Rautonen

πŸ’»

Yuri Orlov

πŸ’»

Varun Upadhyay

πŸ’»

Aditya Pal

πŸ’»

grzesiekkedzior

πŸ’» πŸ‘€

Sivasubramani M

πŸ’»

Sami Airaksinen

πŸ’»

Janne Sinivirta

πŸ’»

Boris-Chengbiao Zhou

πŸ–‹

Jacob Hein

πŸ–‹

Richard Jones

πŸ–‹

Rachel M. Carmena

πŸ–‹

Zaerald Denze Lungos

πŸ–‹

Lars Kappert

πŸ–‹

Mike Liu

🌍

Matt Dolan

πŸ’» πŸ‘€

Manan

πŸ‘€

Nishant Arora

πŸ’»

Peeyush

πŸ’»

Rakesh

πŸ’» πŸ‘€

Wei Seng

πŸ’»

Ashish Trivedi

πŸ’»

ζ΄ͺ月阳

πŸ’»

xdvrx1

πŸ‘€ πŸ€”

Subhrodip Mohanta

πŸ’» πŸ‘€ 🚧

Bethan Palmer

πŸ’»

Toxic Dreamz

πŸ’»

Edy Cu Tjong

πŸ“–

MichaΕ‚ KrzywaΕ„ski

πŸ’»

Stefan Birkner

πŸ’»

Fedor Skvorcov

πŸ’»

samilAyoub

πŸ’»

Vladislav Golubinov

πŸ’»

Swaraj

πŸ’»

Christoph Flick

πŸ“–

AscΓͺnio

πŸ‘€

Domenico Sibilio

πŸ“–

Akash Chandwani

πŸ‘€

Pavlo Manannikov

πŸ’»

Eiman

πŸ’»

Rocky

πŸ“–

Ibrahim ali abdelghany

πŸ‘€

Girish Kulkarni

πŸ“–

Omar Karazoun

πŸ’»

Jeff Evans

πŸ’»

Vivek Singh

πŸ’»

siavash

πŸ’»

ruchpeanuts

πŸ“–

warp125

🌍

KHADIR Tayeb

🌍

ignite1771

πŸ’»

Halil Demir

🌍

Rohit Singh

πŸ’»

byoungju94

πŸ’»

Moustafa Farhat

🌍

Martel Richard

πŸ’»

va1m

πŸ’»

Noam Greenshtain

πŸ’»

yonghong Xu

πŸ“–

jinishavora

πŸ‘€ πŸ’»

Elvys Soares

πŸ’»

zWeBrain

πŸ’»

δ½™ζž—ι’–

🌍

Alain

🌍

VR

πŸ“–

JackieNim

πŸ’»

EdisonE3

πŸ’»

Tao

πŸ’»

Juan Manuel Abate

🌍

Xenilo137

πŸ’»

Samuel Souza

πŸ’»

Marlo Henrique

🌍

AndriyPyzh

πŸ’»

karthikbhat13

πŸ’»

Morteza Adigozalpour

πŸ’»

Nagaraj Tantri

πŸ’»

Francesco Scuccimarri

πŸ’»

Conny Hansson

πŸ“–

Muklas Rahmanto

🌍