接口类
/**
* 接口类
*/
public interface Video {
void printMe();
}
工厂接口类
/**
* 工厂接口类
*/
public interface VideoFactory {
Video getVideo();
}
来新需求了!!! 加入:红色短视频
需要同时加入RedVideo 以及对应的RedVideoFactory工厂类,相比较之前的简单工厂模式,实例化具体对象的工作,将由工厂类转移至其继承的子工厂类来负责
public class RedVideo implements Video {
@Override
public void printMe() {
System.out.println("我是红色短视频");
}
}
public class RedVideoFactory implements VideoFactory {
@Override
public Video getVideo() {
return new RedVideo();
}
}
又来新需求了!!!加入:蓝色短视频
public class BlueVideo implements Video {
@Override
public void printMe() {
System.out.println("我是蓝色短视频");
}
}
public class BlueVideoFactory implements VideoFactory {
@Override
public Video getVideo() {
return new BlueVideo();
}
}
由此可见,工厂模式的特点,就是同一产品簇,引入新成员的同时需要编写两个类来完成,因此,带来的缺点也很明显,类的数量会大量增多
调用
public class Main {
public static void main(String[] args) {
/**
* 调用代码片段:红色短视频
* 切换-蓝色短视频,也非常简单,
* 只需要将new 后面的类名称替换为BlueVideoFactory
*/
VideoFactory videoFactory = new RedVideoFactory();
Video video = videoFactory.getVideo();
video.printMe();
}
}