HTML Diff
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>