工厂设计模式
定义
工厂模式是java中最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式,工厂模式主要是为了创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到一高灵活性的目的
工厂模式根据抽象程度的不同分为三种:
简单工厂模式(也叫静态工厂模式)
工厂方法模式(也叫多形性工厂)
抽象工厂模式(也叫工具箱)
简单工厂模式
实质是由一个工厂类根据传入的参数,动态决定应该去创建哪一个产品类(这些产品继承自一个父类或接口)的实例。简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例
工厂方法模式
工厂方法是粒度很小的设计模式,因为模式的表现只是一种抽象方法。提前定义用于创建对象的接口,让子类决定实例化具体的某一个类,即在工厂和产品中间增加接口,工厂不在负责产品的创建,由接口针对不同条件返回具体的实例,由具体类实例去实现。
抽象工厂模式
当有多个抽象角色时使用的一种工厂模式,抽象工厂模式可以向客户端提供一个接口,时客户端在不必指定产品的具体情况下,创建多个产品对象。它有多个抽象产品类,每个抽象产品类可以派生出多个具体产品类,一个抽象工厂类,可以派生出多个具体工厂类,每个具体工厂类可以创建多个具体产品类的实例。
抽象的产品类:定义car交通工具类
public interface Car {
void gotWork();
}
定义实际的产品类,总共定义两个,bike和bus分别表示不同的交通工具类
public class Bike implements Car {
@Override
public void gotowork()