Details
-
New Feature
-
Status: To Do
-
Major
-
Resolution: Unresolved
-
None
Description
Currently all Loader instances are created in the Instances class constructors, by providing proper parameters in constructor different implementation of Loader is instantiated (and Loader implementations handle deserialization of “sources”- arff file, avro files etc.). In our opinion this could be improved by creating a factory object designed to create proper Loader instances. Such LoaderFactory could accept number of parameters and would return most appropriate Loader implementation. This solution will benefit in the future when there will be need to add new loaders/sources. Also the code will be cleaner and the process of adding another loaders will be simplified, also thanks to ’strict’ use of factory design pattern.
So to sum up, it would mean we would keep all the serialization-related code in the samoa-instances project, and we will use Loader interface (possible extended to support reading and writing of data), and LoaderFactory class. Arguments for factory method would be passed as task options, which means adoption of new serialization formats and data sources would be also simplified. This would mean that we will redesign Kafka components so they will follow this pattern, but on the other hand the pattern would be shared among all the possible sources of data. Moreover, Instances class would be modified by removing some of its constructors and replacing them by single constructor accepting Loader implementation as created by the LoaderFactory.
Attachments
Issue Links
- links to