- 工厂方法模式
如果你设计了一个接口,又为接口设计了很多实现类,为了让用户面对的是这个接口编程,而不用去理解实现类,这就产生了一个问题,用户编程的时候不能直接new一个接口吧,肯定还是要构造一个实现类的对象。工厂方法的目的就是将这部分职责分离出来,不让用户自己去完成这部分任务。
工厂方法在Java中的实现非常的简单,一般有两种方式:直接在接口中定义静态方法,返回一个实现类的对象;再定义一个接口,实现类,然后返回不同的实现类。 - 抽象工厂模式
上面的工厂方法面对的某一个接口,里面的实现类我不想暴露出去;抽象工厂的思路和工厂方法一样,不同的是处理的是多个接口,但是这些接口之间是有联系的,这里面只有几种组合是有效的,我们还是为了不把实现暴露给用户,就可以用抽象工厂的方法。抽象工厂模式可以理解成穿衣服,外套、裤子等的搭配就是一个抽象工厂的实现类提供的方法。