Lecture notes for COMP 371/471: Programming languages course at Loyola University Chicago with a focus on functional languages and projects mostly in Scala
High-level modules should not import anything from low-level modules. Both should depend on abstractions (e.g., interfaces).
Abstractions should not depend on details. Details (concrete implementations) should depend on abstractions.
Let's try to map these points to an example, such as LineCountImperativeModular together with the common traits. Which of those traits and objects are
high-level modules
low-level modules
abstractions
details
?
Or perhaps we could arrange the traits along a high-level vs. low-level continuum.
It would be great if some of you followed up here so we can have a discussion!
https://en.wikipedia.org/wiki/Dependency_inversion_principle <- good reference The key points of the principle are
Let's try to map these points to an example, such as LineCountImperativeModular together with the common traits. Which of those traits and objects are
?
Or perhaps we could arrange the traits along a high-level vs. low-level continuum. It would be great if some of you followed up here so we can have a discussion!