Ðа пÑоÑÑжении долгого вÑемени в пÑогÑаммиÑовании пÑименÑлÑÑ Ð¿ÑоÑедÑÑнÑй Ð¿Ð¾Ð´Ñ Ð¾Ð´. ÐÑи ÑÑом пÑогÑамма ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· ÑÑнкÑий, вÑзÑваÑÑÐ¸Ñ Ð´ÑÑг дÑÑга.
ÐоÑаздо позже поÑвилоÑÑ Ð¾Ð±ÑекÑно-оÑиенÑиÑованное пÑогÑаммиÑование (ÐÐÐ), коÑоÑое позволÑÐµÑ Ð³ÑÑппиÑоваÑÑ ÑÑнкÑии и даннÑе в единой ÑÑÑноÑÑи â «обÑекÑе».
ÐÑи обÑекÑно-оÑиенÑиÑованной ÑазÑабоÑке Ð¼Ñ Ð¾Ð¿Ð¸ÑÑваем пÑоиÑÑ Ð¾Ð´ÑÑее на ÑÑовне обÑекÑов, коÑоÑÑе ÑоздаÑÑÑÑ, менÑÑÑ Ñвои ÑвойÑÑва, взаимодейÑÑвÑÑÑ Ð´ÑÑг Ñ Ð´ÑÑгом и (в ÑлÑÑае бÑаÑзеÑа) Ñо ÑÑÑаниÑей, в обÑем, живÑÑ.
ÐапÑимеÑ, «полÑзоваÑелÑ», «менÑ», Â«ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ð¸Ð½ÑеÑÑейÑа»⦠ÐÑи обÑекÑно-оÑиенÑиÑованном Ð¿Ð¾Ð´Ñ Ð¾Ð´Ðµ каждÑй обÑÐµÐºÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ пÑедÑÑавлÑÑÑ Ñобой инÑÑиÑивно понÑÑнÑÑ ÑÑÑноÑÑÑ, Ñ ÐºÐ¾ÑоÑой еÑÑÑ Ð¼ÐµÑÐ¾Ð´Ñ Ð¸ даннÑе.
Ð JavaScript обÑекÑÑ ÑаÑÑо иÑполÑзÑÑÑÑÑ Ð¿ÑоÑÑо как коллекÑии.
ÐапÑимеÑ, вÑÑÑоеннÑй обÑÐµÐºÑ Math ÑодеÑÐ¶Ð¸Ñ ÑÑнкÑии (Math.sin, Math.pow, â¦) и даннÑе (конÑÑанÑа Math.PI).
ÐÑи Ñаком иÑполÑзовании обÑекÑов Ð¼Ñ Ð½Ðµ можем ÑказаÑÑ, ÑÑо «пÑименÑн обÑекÑно-оÑиенÑиÑованнÑй подÑ
од». Ð ÑаÑÑноÑÑи, никакÑÑ Â«ÐµÐ´Ð¸Ð½ÑÑ ÑÑÑноÑÑÑ» Math из ÑÐµÐ±Ñ Ð½Ðµ пÑедÑÑавлÑеÑ, ÑÑо пÑоÑÑо коллекÑÐ¸Ñ Ð½ÐµÐ·Ð°Ð²Ð¸ÑимÑÑ
ÑÑнкÑий Ñ Ð¾Ð±Ñим пÑеÑикÑом Math.
ÐÑ Ñже ÑабоÑали в ÐÐÐ-ÑÑиле, ÑÐ¾Ð·Ð´Ð°Ð²Ð°Ñ Ð¾Ð±ÑекÑÑ Ñакого вида:
function User(name) {
this.sayHi = function() {
alert( "ÐÑивеÑ, Ñ " + name );
};
}
var vasya = new User("ÐаÑÑ"); // Ñоздали полÑзоваÑелÑ
vasya.sayHi(); // полÑзоваÑÐµÐ»Ñ ÑÐ¼ÐµÐµÑ Ð³Ð¾Ð²Ð¾ÑиÑÑ "ÐÑивеÑ"
ÐдеÑÑ Ð¼Ñ Ð²Ð¸Ð´Ð¸Ð¼ ÑÑко вÑÑаженнÑÑ ÑÑÑноÑÑÑ â User (поÑеÑиÑелÑ). ÐÑполÑзÑÑ ÑеÑÐ¼Ð¸Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ ÐÐÐ, Ñакие конÑÑÑÑкÑоÑÑ ÑаÑÑо назÑваÑÑ ÐºÐ»Ð°ÑÑами, Ñо еÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ Â«ÐºÐ»Ð°ÑÑ User».
ÐлаÑÑом в обÑекÑно-оÑиенÑиÑованной ÑазÑабоÑке назÑваÑÑ Ñаблон/пÑогÑаммнÑй код, пÑедназнаÑеннÑй Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð±ÑекÑов и меÑодов.
Ð JavaScript клаÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ оÑганизоваÑÑ Ð¿Ð¾-ÑазномÑ. ÐовоÑÑÑ, ÑÑо клаÑÑ User напиÑан в «ÑÑнкÑионалÑном» ÑÑиле. Ðалее Ð¼Ñ Ñакже Ñвидим «пÑоÑоÑипнÑй» ÑÑилÑ.
ÐÐÐ â ÑÑо наÑка о Ñом, как делаÑÑ Ð¿ÑавилÑнÑÑ Ð°ÑÑ Ð¸ÑекÑÑÑÑ. У Ð½ÐµÑ ÐµÑÑÑ Ñвои пÑинÑипÑ, напÑÐ¸Ð¼ÐµÑ SOLID.
Ðо пÑиÑмам обÑекÑно-оÑиенÑиÑованной ÑазÑабоÑки пиÑÑÑ ÐºÐ½Ð¸Ð³Ð¸, к пÑимеÑÑ:
- ÐбÑекÑно-оÑиенÑиÑованнÑй анализ и пÑоекÑиÑование Ñ Ð¿ÑимеÑами пÑиложений. ÐÑади ÐÑÑ Ð¸ дÑ..
- ÐÑиÑÐ¼Ñ Ð¾Ð±ÑекÑно-оÑиенÑиÑованного пÑоекÑиÑованиÑ. ÐаÑÑеÑÐ½Ñ Ð¿ÑоекÑиÑованиÑ. Ð. Ðамма, Ð . Хелм, Ð . ÐжонÑон, Ðж. ÐлиÑÑидеÑ.
ÐдеÑÑ Ð¼Ñ Ð½Ðµ имеем возможноÑÑи ÑглÑбиÑÑÑÑ Ð² ÑеоÑÐ¸Ñ ÐÐÐ, поÑÑÐ¾Ð¼Ñ ÑÑение ÑÐ°ÐºÐ¸Ñ ÐºÐ½Ð¸Ð³ ÑекомендÑеÑÑÑ. ХоÑÑ Ð¾ÑновнÑе пÑинÑипÑ, как иÑполÑзоваÑÑ ÐÐРпÑавилÑно, мÑ, вÑÑ Ð¶Ðµ, заÑÑонем.
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)