此设计模式为创造型 设计模式
主要涉及到 要创建的对象 都具有相同的特性 。
优点:
1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、屏蔽产品的具体实现,调用者只关心产品的接口。
应用实例:
1、您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。 2、Hibernate 换数据库只需换方言和驱动就可以。
代码实现:
Car.class 产品的接口类
package com.simpleFactory;
public interface Car {
void drive();
}
奥迪的实例类
package com.simpleFactory;
public class Aodi implements Car{
@Override
public void drive() {
System.out.println("奥迪开车");
}
}
宝马的实例类
package com.simpleFactory;
public class BaoMa implements Car {
@Override
public void drive() {
System.out.println("宝马开车");
}
}
奔驰的实例类
package com.simpleFactory;
public class BenChi implements Car{
@Override
public void drive() {
System.out.println("奔驰开车");
}
}
汽车的实例工厂类
package com.simpleFactory;
public class CarFactory {
public static Car getInstance(String instanceName){
if("baoma".equals(instanceName)){
return new BaoMa();
}else if("aodi".equals(instanceName)){
return new Aodi();
}else if ("benchi".equals(instanceName)){
return new BenChi();
}
return null;
}
}
测试类
package com.simpleFactory;
public class Test {
public static void main(String[] args) {
Car car = CarFactory.getInstance("benchi");
car.drive();
}
}
这种设计模式 很简单 我将它实际运用到了项目中 用来制作图表