新的xxxBorder()和Borderfactory方法之间的区别?

时间:2013-12-08 18:58:09

标签: java swing border titled-border

之间有什么区别
setBorder(new TitledBorder(""));

setBorder(BorderFactory.createTitledBorder(""));

他们有哪些优点/缺点?

2 个答案:

答案 0 :(得分:4)

BorderFactory实际上可能不会在每次调用时创建新实例,而是返回对现有实例的引用,从而节省一些资源。另请参阅javadoc

如果你真的想知道BorderFactory里面发生了什么,你还可以看看actual implementation; - )

答案 1 :(得分:1)

根据 Effective Java item-1:考虑静态工厂方法而不是构造函数BorderFactory.createTitledBorder("")是静态工厂方法,具有以下优点:

  1. 静态工厂方法的一个优点是,与构造函数不同,它们 有名字。
  2. 静态工厂方法的第二个优点是,与构造函数不同, 每次调用它们时都不需要创建新对象。
  3. 静态工厂方法的第三个优点是,与构造函数不同, 他们可以返回其返回类型的任何子类型的对象。
  4. 静态工厂方法的第四个优点是它们可以减少冗长 创建参数化类型实例。
  5. 有关详细说明,请阅读本书。