Re[7]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: · Великобритания  
Дата: 26.09.25 09:13
Оценка: 2 (1)
Здравствуйте, Sinclair, Вы писали:

S>И у вас есть гарантия того, что если вы видите экземпляр общего типа, он является экземпляром одного из этих типов и ничем больше (поэтому у нас есть возможность выполнять exhaustiveness checking).

S>И вот тут и возникает некоторая проблема — как запретить порождать других наследников от Expression? В каком-нибудь дотнете это достигается package visibility для Expression.
А как package visibility позволит сделать exhaustiveness checking?

S>В ООП довольно сложно изобразить такую штуку,

Да вроде несложно... Вот на вскидку из популярных:
https://docs.oracle.com/en/java/javase/17/language/sealed-classes-and-interfaces.html
https://www.geeksforgeeks.org/scala/scala-sealed-trait/
https://kotlinlang.org/docs/sealed-classes.html

Но мне пока не довелось использовать на практике...
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.