title: What design pattern should I use for import/export?
body: <p>I have a calendar event object. I have plans to make it compatible with CalDAV/iCal/vCal protocols/file formats, which require the event be serialized and de-serialized to and from different formats.</p>
  
  <p>I could write an ImportICal, ExportICal, ImportVCal, ExportVCal, etc. set of methods, but that doesn't seem like a very good approach, because what if the vCal format is updated, etc.</p>
  
  <p>Has anyone dealt with this type of import/export situation before? If so, what design pattern (if any) is generally best?</p>
  
  <p>Thanks for your help!</p>