介绍
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
优点
- 一个调用者想创建一个对象,只要知道其名称就可以了。
- 扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。
- 屏蔽产品的具体实现,调用者只关心产品的接口。
缺点
- 每次增加一个产品时,都需要增加一个具体类和对象实现工厂,增加了系统的复杂度。
应用
可扩展性高的场景
实现
关键代码:创建过程在其子类执行
interface Movie {
void watch();
}
class Romance implements Movie {
@Override
public void watch() {
System.out.println("watch Romance");
}
}
class Fiction implements Movie {
@Override
public void watch() {
System.out.println("watch Fiction");
}
}
class MovieFactory {
//获取电影类型的对象
public Movie getMovie(String movieType){
if(movieType == null){
return null;
}
if(movieType.equalsIgnoreCase("Romance")){
return new Romance();
} else if(movieType.equalsIgnoreCase("Fiction")){
return new Fiction();
}
return null;
}
}
class FactoryDemo {
public static void main(String[] args) {
MovieFactory movieFactory = new MovieFactory();
Movie movie1 = movieFactory.getMovie("Romance");
movie1.watch();
}
}
结果:
watch Romance