Is it possible to create a dependency injection with interface and an abstract(base) class?
So im building a controller that uses IPersonFactory<T> to connect to PersonFactory<T> which is a base class that depending on the generic type sends the request to several different sub-factories which ultimately end in respective repositories.
Rn I'm downcasting _factories to different generic types of IPersonFactory<Person> to do the type change.
Since this gives a build error would it be better to make fields for all different types of IPersonFactory and make injections for them?
8 Replies
PersonFactory<T>
can not be abstract otherwise how is it supposed to be instantiatedthought so... will make fields for all the types of T and instantiate them instead, TY for confirming
What are you trying to solve here and what was your approach
Its a school app that communicates with several tables
this screen is responsible for the addition of info into all the people related tables
there are several other controllers with get methods and etc but the idea was to be able to add, remove and update the people tables from this single controller (all the factories have different number for Priority)
i suppose this might be done with reflection instead of switches but not too sure how to do it
Are you just using the name "factory" as a stand-in for a generic repository? Because it looks an awful lot like a generic repository usage.
Also, are you really storing each type of a person in a separate table? Why not use a role-based system and have a single table for all people?
there are also repositories where the Db connection is actually made
pretty much its controllers - Interfaces - factories - repositories
idk if it's too many classes
i was advised by a friend to make the DB connection code harder to see
the factories dont rly create anything as their usual purpose would be
they just call the repositories
the idea was to have different tables connected with FK between each other, for instance the Students are connected to Parents and the Grades tables
any recommendations would be appreciated since im still stumbling my way around APIs
If the factories just call repositories, it soulds like they're completely useless