设计模式之工厂方法模式

设计模式之工厂方法模式

    在我们了解了简单工厂模式之后我们考虑到专业性,在日常生活中有很多鞋厂,但有的鞋厂是很专业的,

    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();
	}
}

  

                                                                                                                                                                                                                                                                                      

原文地址:https://www.cnblogs.com/fjkgrbk/p/Method_Factory.html