Remove anti-pattern of classmethods
The `Spec` class family were originally set up to work using class methods. This was natural because each `Spec` derivative only represented a single field. With the addition of the `Amplm` and `Phaselm` specs, this was no longer true, with each of these specs required to represent a collection of fields. While initially attempted to use instances for these `Specs` and classes+classmethods for the remaining specs, to much off the logic required casing on the `Spec` being an instance of class, it was decided to only use classes and classmethods. In the end this resulting in a massive anti-pattern, defining a class factory in place of instance initialisers in the `Amplm` and `Phaselm` classes, and a general bad logic. It made sense to use classmethods before, but in no longer did. This commit refactors most classmethods as instance methods (with a couple left as classmethods because theydo not reference the parent object, and could infact be staic methods). While a couple of expressions required additional `()` to instance `Specs`, overall the logic has been greatly simplified and actually demonstrated that the classmethod paradigm previously used had significantly little benifit.
parent
63de1fb9
No related branches found
No related tags found
Loading
Please register or sign in to comment