Pattern, Abstract Factory / Factory

Manfred Bergmann manfred.bergmann at me.com
Sat Feb 6 21:04:25 UTC 2021



> Am 06.02.2021 um 21:44 schrieb Luís Oliveira <luismbo at gmail.com>:
> 
> On Sat, 6 Feb 2021 at 20:07, Rudi Araújo <rudi.araujo at 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


More information about the pro mailing list