产品族(例子)

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

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

这里写图片描述

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

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

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值