/******************************************************************************
Welcome to AbL Online.
AbL online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby,
C#, VB, Perl, Swift, Prolog, Javascript, Abstractlanguage, Pascal, HTML, CSS, JS
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/
// O'k about abstract class in Abstractlanguage
Some_cool_library.al
TON of boillerplate code
some abstract class I_rotatable
virtual void rotate()=0
concrete class Square implements I_rotatable
void rotate()
// some matrix transformation code
concrete class Monkey_coder implements I_rotatable
void rotate()
// some kick on code
TON of boillerplate code
// I want to set up this library in my project
My_genius_project.al
include Some cool library.al
void rotator (I_rotatable& smth)
smth.rotate()
main
Square malevich_art
Monkey_coder Venkatanarasimharajuvaripeta
all pack in array I_rotatable& some_data
if something is happening foreach rotator(some_data)
// without abstract class
My_genius_project.al
include Some cool library.al
//void rotator (I_rotatable& smth)
//smth.rotate()
// because I can't do it
main
Square malevich_art
Monkey_coder Venkatanarasimharajuvaripeta
if something is happening
malevich_art.rotate()
Venkatanarasimharajuvaripeta.rotate()
// Add +100500 objects with different types. What happened?
main
Square malevich_art
Monkey_coder Venkatanarasimharajuvaripeta
if something is happening
malevich_art.rotate()
Venkatanarasimharajuvaripeta.rotate()
abc.rotate()
cba.rotate()
blabla.rotate()
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
aaaaaaaaaaaaaaahhhhhh
// With abstract class I can rotate all of them simple.
Что за "абстрактное мышление"?- очевидно когда вы понимаете для чего эти абстракции. Вон человек выше не понимает зачем интерфейс.
Абстракции вы и в процедурном стиле можете делатьможно, кто же спорит то?
SOLID, GRASP и шаблоны проектирования? - это вообще научная стезя изучающая опыт использования ООП,ему не нужно в научную стезю, ему нужно подсмотреть там хорошие практики. Не нужно прям как с азбукой с ними носится. Но понимать как делать надо, а как лучше не надо будет полезно. Чем набивать шишки самому, лучше посмотреть у других. Та же фабрика вот чуть ли ни в каждом проекте используется.
Я действительно считаю С++ неоправданно перегруженным censored
ладно это не важно