public WriterFactory withFavoredNodes(InetSocketAddress[] favoredNodes) {
      // Deliberately not checking for null here.
      this.favoredNodes = favoredNodes;
      return this;
    }
This variety of ways to construct writers is used throughout the code, and we want to be able
to swap writer implementations.
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java