0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>ООП - тяжело формализуемое понятие, у которого очень много аспектов. В разные времена под ООП понимали и до сих пор понимают разные вещи. Существует как минимум два вида ООП, одно сформулированное Аланом Кеем, создателем языка SmallTalk, и другое - то, которое про полиморфизм, наследование и инкапсуляцию (Гради Буч). В современном мире, обычно под ООП имеют в виду второе, хотя первое живёт и здравствует во многих языках. Но даже когда мы говорим про второй вид ООП, всё равно разные языки делают акцент на разные возможности. То, что в одних языках считается признаком настоящего ООП, в других неприемлемо.</p>
1
<p>ООП - тяжело формализуемое понятие, у которого очень много аспектов. В разные времена под ООП понимали и до сих пор понимают разные вещи. Существует как минимум два вида ООП, одно сформулированное Аланом Кеем, создателем языка SmallTalk, и другое - то, которое про полиморфизм, наследование и инкапсуляцию (Гради Буч). В современном мире, обычно под ООП имеют в виду второе, хотя первое живёт и здравствует во многих языках. Но даже когда мы говорим про второй вид ООП, всё равно разные языки делают акцент на разные возможности. То, что в одних языках считается признаком настоящего ООП, в других неприемлемо.</p>
2
<p>Если попытаться как-то обобщить и найти самое фундаментальное, то чем обладают все ООП-языки (по Бучу), то скорее всего общей точкой соприкосновения окажется полиморфизм подтипов.</p>
2
<p>Если попытаться как-то обобщить и найти самое фундаментальное, то чем обладают все ООП-языки (по Бучу), то скорее всего общей точкой соприкосновения окажется полиморфизм подтипов.</p>
3
<blockquote><p>Полиморфизм (подтипов), пожалуй, самая важная отличительная черта современного объектно-ориентированного программирования. Бенджамин Пирс. Автор книги Теория Типов В Языках Программирования.</p>
3
<blockquote><p>Полиморфизм (подтипов), пожалуй, самая важная отличительная черта современного объектно-ориентированного программирования. Бенджамин Пирс. Автор книги Теория Типов В Языках Программирования.</p>
4
</blockquote><p>В этом курсе мы подробно рассмотрим полиморфизм, механизмы его реализации и, самое главное, научимся правильно его применять. Основные темы данного курса:</p>
4
</blockquote><p>В этом курсе мы подробно рассмотрим полиморфизм, механизмы его реализации и, самое главное, научимся правильно его применять. Основные темы данного курса:</p>
5
<ul><li>Виды полиморфизма: подтипов и параметрический</li>
5
<ul><li>Виды полиморфизма: подтипов и параметрический</li>
6
<li>Диспетчеризация и её виды.</li>
6
<li>Диспетчеризация и её виды.</li>
7
<li>Инверсия зависимостей, а с ней и инъекция</li>
7
<li>Инверсия зависимостей, а с ней и инъекция</li>
8
<li>DI-контейнер</li>
8
<li>DI-контейнер</li>
9
<li><a>SOLID</a>(SRP, OCP, LSP, ISR, DIP)</li>
9
<li><a>SOLID</a>(SRP, OCP, LSP, ISR, DIP)</li>
10
</ul><p>Кроме того, мы познакомимся с понятием "шаблоны проектирования". Разберём их влияние на структуру кода, и познакомимся с некоторыми популярными:</p>
10
</ul><p>Кроме того, мы познакомимся с понятием "шаблоны проектирования". Разберём их влияние на структуру кода, и познакомимся с некоторыми популярными:</p>
11
<ul><li>Null Object</li>
11
<ul><li>Null Object</li>
12
<li>Strategy</li>
12
<li>Strategy</li>
13
<li>Factory</li>
13
<li>Factory</li>
14
</ul><p>Поговорим о том, когда полиморфизм необходим, а когда он не нужен или даже вреден. Познакомимся с несколькими техниками, позволяющими получить полиморфное поведение без использования объектов. Для этого рассмотрим различные виды диспетчеризации.</p>
14
</ul><p>Поговорим о том, когда полиморфизм необходим, а когда он не нужен или даже вреден. Познакомимся с несколькими техниками, позволяющими получить полиморфное поведение без использования объектов. Для этого рассмотрим различные виды диспетчеризации.</p>