Scala, Design Patterns, Programming, Factory Pattern.
getOptions(): String = "json options specific for json files" } abstract class Reader { def open(options: Options): Unit } private case class CsvReader(var path: String) extends Reader { override def open(options: Options): Unit = System.out.println(s"csvReader opened csv on path ${path} with