Scala, Design Patterns, Programming, Factory Pattern.
${options.getOptions}") } private case class JsonReader(var path: String) extends Reader { override def open(options: Options): Unit = System.out.println(s"jsonReader opened json on path ${path} with ${options.getOptions}") } The Options implementation returns a string specific to their kind of