如果您在编写库时创建了私有类型,而且您需要在公共API中暴露该类型,那么您应该将私有类型替换为公共类型,或者将其包装在公共API中。例如,如果您正在编写一个库,其中包含一个Sheet类,而Sheet是私有的,则您可以创建一个公共的Worksheet接口,并将Sheet包装在其中,以在公共API中公开它。
以下示例展示了如何使用公共Worksheet接口来公开私有Sheet类型:
// 私有Sheet类型 class Sheet { ... }
// 公共Worksheet接口 public interface Worksheet { void setName(String name); void setColumnWidth(int column, int width); }
// 将Sheet包装在Worksheet中 class WorksheetImpl implements Worksheet { private Sheet sheet;
WorksheetImpl(Sheet sheet) { this.sheet = sheet; }
public void setName(String name) { sheet.setName(name); }
public void setColumnWidth(int column, int width) { sheet.setColumnWidth(column, width); } }
// 在公共API中使用Worksheet public class MyLibrary { public static Worksheet createWorksheet(String name) { Sheet sheet = new Sheet(); Worksheet worksheet = new WorksheetImpl(sheet); worksheet.setName(name); return worksheet; } }
上一篇:避免在工厂模式中进行类型转换。
下一篇:避免在公共页面存储cookie