设计模式之工厂方法模式
在我们了解了简单工厂模式之后我们考虑到专业性,在日常生活中有很多鞋厂,但有的鞋厂是很专业的,
eg:安踏,阿迪达斯,等知名品牌做专业工厂,把工厂给具体化了。
1.抽象工厂(Creator)角色 :工厂方法模式的核心,任何工厂类都必须实现这个接口。 (CarFactory)
2.具体工厂( Concrete Creator)角色 :具体工厂类是抽象工厂的一个实现,负责实例化产品对象。 (DaZhongFactory,XianDaiFactory)
3.抽象(Product)角色 :工厂方法模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。(Car)
4.具体产品(Concrete Product)角色 :工厂方法模式所创建的具体实例对象(DaZhongCar,XianDaiCar)
在简单工厂模式的基础上把工厂模式具体化,让他们抽象出来一个接口。
修改简单工厂模式的工厂类 修改为汽车工厂接口
CarFactory汽车工厂类
public interface CarFactory{ public abstract Car getCar(); }
大众车的工厂类
public class DaZhongFactory implements CarFactory{ @Override public Car getCar(){//返回大众车对象 return new DaZhongCar(); //获取大众车的对象 } }
现代车的工厂类
public class XianDaiFactory implements CarFactory{ @Override public Car getCar(){//返回大众车对象 return new XianDaiCar(); //获取大众车的对象 } }
测试类:
public class Test01 { public static void main(String[] args) throws Exception { //获取一个大众车 DaZhongFactory dzf=new DaZhongFactory(); Car car = dzf.getCar(); car.getCar(); } }