Связывание абстрактных классов со свойствами в python

В данной статье хочу поделиться своим опытом по абстрактным классам. Думаю это будет полезно как разработчикам, только начинающим свой путь, так и уже имеющим опыт. В материале можно посмотреть, как изящно связать свойства и абстрактные классы с реализацией принципа DRY . Для начал кратко пробежимся по определениями и терминам, и далее ответим на вопросы, которые могут логично вытекать из этих определений. Абстрактные классы - это базовые классы, определяющие каркас с методами, обязательными для реализации в наследниках и служащими для создания интерфейсов, однако сами экземпляры таких классов создать нельзя. Абстрактные методы - методы с декоратором @abstractmethod, которые обязаны быть реализованы в дочерних классах. Абстрактный класс может содержать как обычные, так и абстрактные методы. Свойство - реализуется через декораторы @property (для чтения) и @<name>.setter (для изменения и валидации) обеспечивая инкапсуляцию, делая API удобным, при этом позволяя менять внутреннюю реализацию без изменения внешнего кода.

https://habr.com/ru/articles/1002538/

#Абстрактный_класс #свойство #python #property #setter #ООП #dry #наследование_в_python #абстрактные_классы #валидация_данных

Связывание абстрактных классов со свойствами в python

В данной статье хочу поделиться своим опытом по абстрактным классам. Думаю  это будет полезно как разработчикам, только начинающим свой путь, так и уже имеющим опыт.  В материале можно...

Хабр

Field vs Constructor Injection в Java: ошибка объектного дизайна или вопрос синтаксиса?

Знаю, знаю... Прочитав заголовок, хочется голосом волка из мультфильма "Жил был пёс" сказать - "Шо, опять?" . Ведь битва этих подходов давно закончилась и разработчики Spring уже поставили точку. Но недавняя публикация в одном довольно крупном Telegram-канале заставила меня вернуться к этому вопросу. В качестве главных аргументов против field injection там приводились лишь сложность изоляции в тестах и неудобство создания экземпляров для unit-тестов. И хотя с этими пунктами не поспоришь, у многих разработчиков и не только начинающих, остаются вопросы: каковы реальные последствия для самого объекта? Можно ли считать его полноценным сразу после создания new ? И почему все современные рекомендации так настаивают на конструкторах? Поиск ответов показал мне, что аргумент о тестах лишь верхушка айсберга. В глубине, куда я Вас сегодня приглашаю заглянуть, скрываются куда более фундаментальные вопросы принципов объектно-ориентированного дизайна, гарантий Java Memory Model и уважения к жизненному циклу объекта.

https://habr.com/ru/articles/983344/

#field #injection #constructor #setter #Dependency_Injection #Spring_Framework #Java #ObjectOriented_Design #Invariants

Field vs Constructor Injection в Java: ошибка объектного дизайна или вопрос синтаксиса?

Знаю, знаю... Прочитав заголовок, хочется голосом волка из мультфильма "Жил был пёс" сказать - "Шо, опять?" . Ведь битва этих подходов давно закончилась и разработчики Spring уже поставили точку. Но...

Хабр

Field vs Constructor Injection в Java: ошибка объектного дизайна или вопрос синтаксиса?

Знаю, знаю... Прочитав заголовок, хочется голосом волка из мультфильма "Жил был пёс" сказать - "Шо, опять?" . Ведь битва этих подходов давно закончилась и разработчики Spring уже поставили точку. Но недавняя публикация в одном довольно крупном Telegram-канале заставила меня вернуться к этому вопросу. В качестве главных аргументов против field injection там приводились лишь сложность изоляции в тестах и неудобство создания экземпляров для unit-тестов. И хотя с этими пунктами не поспоришь, у многих разработчиков и не только начинающих, остаются вопросы: каковы реальные последствия для самого объекта? Можно ли считать его полноценным сразу после создания new ? И почему все современные рекомендации так настаивают на конструкторах? Поиск ответов показал мне, что аргумент о тестах лишь верхушка айсберга. В глубине, куда я Вас сегодня приглашаю заглянуть, скрываются куда более фундаментальные вопросы принципов объектно-ориентированного дизайна, гарантий Java Memory Model и уважения к жизненному циклу объекта.

https://habr.com/ru/articles/983340/

#field #injection #constructor #setter #Dependency_Injection #Spring_Framework #Java #ObjectOriented_Design #Invariants

Field vs Constructor Injection в Java: ошибка объектного дизайна или вопрос синтаксиса?

Знаю, знаю... Прочитав заголовок, хочется голосом волка из мультфильма "Жил был пёс" сказать - "Шо, опять?" . Ведь битва этих подходов давно закончилась и разработчики Spring уже поставили точку. Но...

Хабр

Gab‘s nicht mal einen Film mit dem Titel „Liegen lernen“?
Hier wäre dann das Plakat dazu.

#Cira #englischsetter #dogsofmastodon #dogs #setter #englishsetters

In der objektorientierten Programmierung geht es nicht nur darum, was ein Programm kann, sondern auch darum, wer was wissen darf. Genau hier setzt das sogenannte Geheimnisprinzip an – oder etwas technischer formuliert: die Sicht...

https://magicmarcy.de/java-sichtbarkeiten-–-das-geheimnisprinzip-einfach-erklaert

#Geheimnisprinzip #Sichtbarkeit #Information_Hiding #Sichtbarkeitsmodifikatoren #private #protected #public #package_friendly #package-private #Modifikator #Getter #Setter #Zugriff

Java: Sichtbarkeiten – Das Geheimnisprinzip einfach erklärt | magicmarcy.de

In der objektorientierten Programmierung geht es nicht nur darum, was ein Programm kann, sondern auch darum, wer was wissen darf. Genau hier setzt das sogenannte Geheimnisprinzip an – oder etwas technischer formuliert: die Sichtbarkeit von Variablen, Methoden und Klassen in Java. Das Ziel ist einfach: Eine Klasse soll nur so viel preisgeben, wie wirklich nötig ist. Alles andere bleibt intern und damit geschützt vor unbeabsichtigtem Zugriff von außen. Das ist ein wichtiger Teil von sauberem Code und schützt vor Fehlern, die durch falsche Nutzung entstehen könnten.

magicmarcy.de