package com.zengtao.demo.factory;
/**
* 抽象工厂
*/
public abstract class CarFactory {
public abstract <T extends Car> T createCar(Class<T> cla);
}
package com.zengtao.demo.factory;
/**
* 奥迪工厂
*/
public class AudiFactory extends CarFactory {
@SuppressWarnings("unchecked")
@Override
public <T extends Car> T createCar(Class<T> cla) {
Car car = null;
try {
car = (Car) Class.forName(cla.getName()).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return (T) car;
}
}
package com.zengtao.demo.factory;
public abstract class Car {
public abstract void drive();
public abstract void selfNagive();
public abstract void playMusic();
}
package com.zengtao.demo.factory;
public class AudiQ3Car extends AudiCar {
@Override
public void drive() {
System.out.println("AudiQ3Car 已经制造成功");
System.out.println("AudiQ3Car drive");
}
@Override
public void selfNagive() {
System.out.println("AudiQ3Car selfNagive");
}
@Override
public void playMusic() {
System.out.println("AudiQ3Car playMusic");
System.out.println("");
}
}
package com.zengtao.demo.factory;
public class AudiQ5Car extends AudiCar {
@Override
public void drive() {
System.out.println("AudiQ5Car 已经制造成功");
System.out.println("AudiQ5Car drive");
}
@Override
public void selfNagive() {
System.out.println("AudiQ5Car selfNagive");
}
@Override
public void playMusic() {
System.out.println("AudiQ5Car playMusic");
System.out.println("");
}
}
package com.zengtao.demo;
import com.zengtao.demo.factory.AudiFactory;
import com.zengtao.demo.factory.AudiQ3Car;
import com.zengtao.demo.factory.AudiQ5Car;
public class Main {
public static void main(String[] str) {
// 创建工厂
AudiFactory audiFactory = new AudiFactory();
// 利用工厂制造q3车
AudiQ3Car audiQ3Car = audiFactory.createCar(AudiQ3Car.class);
// 利用工厂制造q5车
AudiQ5Car audiQ5Car = audiFactory.createCar(AudiQ5Car.class);
// 开始开车放音乐
audiQ3Car.drive();
audiQ3Car.playMusic();
audiQ5Car.drive();
audiQ5Car.playMusic();
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有