产品族(例子)

来源:互联网 发布:淘宝家装APP 编辑:程序博客网 时间:2024/04/30 17:26

实验内容:
这里写图片描述

产品族类图:
这里写图片描述
产品等级结构图:
这里写图片描述

这里写图片描述

代码目录结构:
这里写图片描述 结果:结果

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();    }}