ALL of the table interfaces are setup to statically refrence their Row and Query classes, which is making it hard to abstract. Instead, setup the AuditCongressTable to accept instances of a Factory to produce those objects.
Also determine which functions ALL tables/queries need and include them in a base class (or via traits)
Only goal here is to make it easier to maintain and add new table/row/query interfaces. Much of this logic is shared, so really try to avoid duplication as much as possible (always the goal)
Note, opting to keep things static for now as it makes the API's interactions very simple too. Essentially instances are only needed to verify the cache & fetch the Query/Row classes now
ALL of the table interfaces are setup to statically refrence their
Row
andQuery
classes, which is making it hard to abstract. Instead, setup theAuditCongressTable
to accept instances of aFactory
to produce those objects.Also determine which functions ALL tables/queries need and include them in a base class (or via traits)
Only goal here is to make it easier to maintain and add new table/row/query interfaces. Much of this logic is shared, so really try to avoid duplication as much as possible (always the goal)