实验内容:
产品族类图:
产品等级结构图:
代码目录结构:
结果:
factory包
IAutoFactory.java
package factory;
import product.ISUV;
import product.ISport;
public interface IAutoFactory {
public ISport createSport();
public ISUV createSUV();
}
SuperFactory.java
package factory;
import product.ISUV;
import product.ISport;
import sportProduct.SuperSport;
import suvProduct.SuperSUV;
public class SuperFactory implements IAutoFactory {
@Override
public ISport createSport() {
return new SuperSport();
}
@Override
public ISUV createSUV() {
return new SuperSUV();
}
}
MedFactory.java
package factory;
import product.ISUV;
import product.ISport;
import sportProduct.MedSport;
import suvProduct.MedSUV;
public class MedFactory implements IAutoFactory{
@Override
public ISport createSport() {
return new MedSport();
}
@Override
public ISUV createSUV() {
return new MedSUV();
}
}
product包
ISport.java
package product;
public abstract class ISport {
public abstract void ignition();
public abstract void startup();
}
ISUV.java
package product;
public abstract class ISUV {
public abstract void ignition();
public abstract void startup();
}
sportProduct包
SuperSport.java
package sportProduct;
import product.ISport;
public class SuperSport extends ISport {
@Override
public void ignition() {
System.out.println("高级运动车点火");
}
@Override
public void startup() {
System.out.println("高级运动车启动");
}
}
MedSport.java
package sportProduct;
import product.ISport;
public class MedSport extends ISport {
@Override
public void ignition() {
System.out.println("中级运动车点火");
}
@Override
public void startup() {
System.out.println("中级运动车启动");
}
}
suvProduct包
SuperSUV.java
package suvProduct;
import product.ISUV;
public class SuperSUV extends ISUV {
@Override
public void ignition() {
System.out.println("高级SUV点火");
}
@Override
public void startup() {
System.out.println("高级SUV启动");
}
}
MedSUV.java
package suvProduct;
import product.ISUV;
public class MedSUV extends ISUV {
@Override
public void ignition() {
System.out.println("中级SUV点火");
}
@Override
public void startup() {
System.out.println("中级SUV启动");
}
}
main
import factory.MedFactory;
import factory.SuperFactory;
import sportProduct.MedSport;
import sportProduct.SuperSport;
import suvProduct.MedSUV;
import suvProduct.SuperSUV;
public class client {
public static void main(String[] args) {
SuperFactory sf =new SuperFactory();
SuperSport sp= (SuperSport) sf.createSport();
sp.ignition();
sp.startup();
SuperSUV ss = (SuperSUV) sf.createSUV();
ss.ignition();
ss.startup();
MedFactory mf =new MedFactory();
MedSport mSport = (MedSport) mf.createSport();
mSport.ignition();
mSport.startup();
MedSUV mSuv = (MedSUV) mf.createSUV();
mSuv.ignition();
mSuv.startup();
}
}