java工厂模式和接口多态
求知讲堂零基础Java入门编程视频教程笔记
P79 day96_工厂模式
其上一个视频get到的知识点,接口的多态语法
接口名 类名 = new 实现接口的类();
只能调用接口中的方法和变量
工厂模式的例子来表现接口的多态
工厂里面大家分工合作
开发人员A负责各个类型的宝马车的产品信息
class BWM3{};
class BWM5{};
class BWM7{};
开发人员B负责实例化各个类型的宝马车,即生产宝马车
class BWM3 = new BWM3();
class BWM5 = new BWM5();
class BWM7 = new BWM7();
但是如果开发人员A修改了产品宝马3的类名,将BWM3改成BWM3i,则开发人员也要修改,所以要用接口的多态来避免开发人员B的修改麻烦
//建一个接口BWM,其方法:showInfo()
public interface BWM{
public abstract void showInfo();
}
class BWM3 implements BWM{
@Override
public void showInfo(){
System.out.println("这是宝马3系列产品的信息");
}
}
//BWM3、BWM5、BWM7实现接口BWM
class BWM5 implements BWM{
@Override
public void showInfo(){
System.out.println("这是宝马5系列产品的信息");
}
}
class BWM7 implements BWM{
@Override
public void showInfo(){
System.out.println("这是宝马7系列产品的信息");
}
}
//建立接口BWMFactory,产车车厂
public interface BWMFactory{
public abstract BWM productCar();
}
//宝马3生产专线车间
class BWM3Factory implements BWMFactory{
@Override
public BWM productCar(){
System.out.println("宝马3生产车厂");
return new BWM3();
}
}
//宝马3生产专线车间
class BWM5Factory implements BWMFactory{
@Override
public BWM productCar(){
System.out.println("宝马5生产车厂");
return new BWM5();
}
}
//宝马3生产专线车间
class BWM7Factory implements BWMFactory{
@Override
public BWM productCar(){
System.out.println("宝马7生产车厂");
return new BWM7();
}
}
public Test{
public static void main(String args[]){
//接口的多态:接口名 类名 = new 实现接口的类();
BWM b3 = new BWM3Factory().productCar();//匿名对象new BWM3Factory()调用方法productCar(),该方法返回类BWM3
b3.showInfo();
BWM b5 = new BWM5Factory().productCar();
b5.showInfo();
BWM b7 = new BWM7Factory().productCar();
b7.showInfo();
}
}
这样改动BWM3、BWM5、BWM7的类名只用在建立接口BWMFactory部分的代码进行修改了