I often want to use theory as a variable, so it should not be the method that gets a concrete Theory object from a subtype of AbstractTheory.
Also, maybe AbstractTheory should be called TheoryBearer, because Theory does not subtype AbstractTheory, and that's confusing. Alternatively, Theory could subtype AbstractTheory, and gettheory should be the identity on Theory.
I often want to use
theory
as a variable, so it should not be the method that gets a concreteTheory
object from a subtype ofAbstractTheory
.Also, maybe
AbstractTheory
should be calledTheoryBearer
, becauseTheory
does not subtypeAbstractTheory
, and that's confusing. Alternatively,Theory
could subtypeAbstractTheory
, andgettheory
should be the identity onTheory
.