java工厂模式和接口多态

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部分的代码进行修改了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值