I'm trying to build a program to compare data in various file formats (e.g., CSV, JSON and XML). I want to be able to use a single interface that can handle different file formats and is easily extendible with additional file formats.
The main interface should be able to compare two files with different formats (e.g., CSV and JSON). This will require a step to extract and convert the data into a dict for example.
It seems the object-oriented adapter pattern is perfectly suited for this. Unfortunately, I am not familiar with this design pattern and do not fully understand how to implement it.
I have created a small outline, but cannot understand how to integrate the parts:
class DataComparer:
def __init__(self, source, target):
self.source = source
self.target = target
def compare(self):
# do comparison
class CSV:
def __init__(self, csv_file):
self.csv_file = csv_file
def extract_convert(self):
# extract and convert
class JSON:
def __init__(self, json_file):
self.json_file = json_file
def extract_convert(self):
# extract and convert
class XML:
def __init__(self, xml_file):
self.xml_file = xml_file
def extract_convert(self):
# extract and convert
Does anyone know how to approach this problem with the adapter design pattern? Suggestions for other design patterns are also welcome. Your help us much appreciated!
Aucun commentaire:
Enregistrer un commentaire