Am 06.02.2021 um 21:44 schrieb Luís Oliveira luismbo@gmail.com:
On Sat, 6 Feb 2021 at 20:07, Rudi Araújo rudi.araujo@gmail.com wrote:
Class::newInstance() doesn't have any parameters (also, it's deprecated: better to use getConstructor() or getDeclaredConstructor() and call newInstance() on it).
I guess this bit about getConstructor() explains why it'd be more convenient to use a Factory, or the Factory method pattern, or some dependency injection framework.
Yeah. Could be. But this constructor thingy could be hidden in a function similar as you would create a constructor function make-foo in Common Lisp. The reflection stuff is not considered a good practice in certain types of applications.
Dependency injection is about something else IMO. Well, Abstract Factory is about it, too, inversion of control. It allows you to create something without having to know the concrete type and without having to have a source dependency on it. In Common Lisp this could be solved easily by just separating a protocol from the implementation, maybe in separate packages.
Manfred