Closed alelom closed 4 years ago
Could argue both ways here, and the Template solves much of the reason for forcing implementation by making read and create abstract. That being said, I think it still can be useful to keep them, if for nothing else, to direct the intended default workflow of the adapter.
I do not really agree with it being a conflict of push/pull being override-able and create/read abstract. Abstract -> intended use, virtual -> you are still free to do whatever you want.
To me this is not a big thing though. If I had to choose I would probably keep them abstract to highlight their significance in the intend work of the adapter, but not too bothered if we make them virtual.
I agree with Isak.
This has been closed by #151
I see the point of having
Create()
andRead()
as abstract.In theory, that forces developers in sticking to the "Replace" or CRUD paradigm, or at least to give a thought to that.
However:
I think that in practice this is not true. You still need developers to read the Wiki to know how to properly implement and use the CRUD methods.
In a way, I think that enforcing the implementation of
Create()
andRead()
is giving a false sense of compliance. People still can (and will) just implement empty methods.It does not allow for flexibility. There are Toolkits where it does not make sense to enforce the "Replace" or CRUD paradigm. DataViz_Toolkit, GitHub_Toolkit, MachineLearning_Toolkit, Sharepoint_Toolkit, and the list goes on. Those toolkits are forced in implementing empty Create and Read methods, while they sometimes implement the "non mandatory" CRUD methods (Delete, etc).
It conflicts with the fact that we give the possibility to
override
thePush
. If you override the Push, nothing stops you to avoid using the Create and Read, which happens for all Toolkits at point 3. People just put empty Create and Read methods overrides in their Toolkits.Proposal
Create()
andRead()
asvirtual
methods.Level 1 - Always required
andLevel 2 - Optional
is good but we can elaborate a bit more.@adecler @al-fisher @IsakNaslundBh @epignatelli @rwemay