为什么没有强迫LineBorder不仅仅是由BorderFactory创建的?

时间:2014-05-15 12:48:55

标签: java design-patterns

我正在尝试从JDK学习设计模式。我试图通过BorderFactory类了解Factory模式。我发现我可以创建不同的边框,例如LineBorder也没有使用工厂。那么为什么会这样呢?如果有工厂可用,那么为什么他们也打开那个也可以在不使用工厂的情况下创建LineBorder的对象。那么创建BorderFactory背后的动机是什么?

1 个答案:

答案 0 :(得分:0)

JRE现在已有近二十年的历史,很可能(我会说到)在早期版本中,BorderFactory甚至没有存在。虽然BorderFactory有助于避免创建大量基本相同的边框对象,但新的XXXBorder()是初始创建此类边框的唯一方法。为了与旧代码兼容,类和构造函数需要保持公开。

不幸的是,BorderFactory在其javadoc中没有“自”,我懒得挖出1.0-1.2文档来检查什么时候引入。 Borderfactory中的一些方法“自1.7以来”,因此它至少经历了一些演变。