24.11.17

实验4:抽象工厂模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解抽象工厂模式的动机,掌握该模式的结构;

2、能够利用抽象工厂模式解决实际问题。

[实验任务一]:人与肤色

使用抽象工厂模式,完成下述产品等级结构:

 

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

 

l.类图:

 

 

2.源代码:

// 定义抽象产品接口

interface MaleProduct {

    void display();

}

 

interface FemaleProduct {

    void display();

}

 

// 实现具体的产品类

class WhiteFemaleProduct implements FemaleProduct {

    public void display() {

        System.out.println("白色-女性产品");

    }

}

 

class WhiteMaleProduct implements MaleProduct {

    public void display() {

        System.out.println("白色-男性产品");

    }

}

 

class BlackFemaleProduct implements FemaleProduct {

    public void display() {

        System.out.println("黑色-女性产品");

    }

}

 

class BlackMaleProduct implements MaleProduct {

    public void display() {

        System.out.println("黑色-男性产品");

    }

}

 

class YellowFemaleProduct implements FemaleProduct {

    public void display() {

        System.out.println("黄色-女性产品");

    }

}

 

class YellowMaleProduct implements MaleProduct {

    public void display() {

        System.out.println("黄色-男性产品");

    }

}

 

// 抽象工厂

interface ProductFactory {

    MaleProduct createMaleProduct();

    FemaleProduct createFemaleProduct();

}

 

// 白色产品工厂

class WhiteProductFactory implements ProductFactory {

    public MaleProduct createMaleProduct() {

        return new WhiteMaleProduct();

    }

    public FemaleProduct createFemaleProduct() {

        return new WhiteFemaleProduct();

    }

}

 

// 黑色产品工厂

class BlackProductFactory implements ProductFactory {

    public MaleProduct createMaleProduct() {

        return new BlackMaleProduct();

    }

    public FemaleProduct createFemaleProduct() {

        return new BlackFemaleProduct();

    }

}

 

// 黄色产品工厂

class YellowProductFactory implements ProductFactory {

    public MaleProduct createMaleProduct() {

        return new YellowMaleProduct();

    }

    public FemaleProduct createFemaleProduct() {

        return new YellowFemaleProduct();

    }

}

 

// 客户端

public class Client{

    public static void main(String[] args) {

        ProductFactory whiteFactory = new WhiteProductFactory();

        ProductFactory blackFactory = new BlackProductFactory();

        ProductFactory yellowFactory = new YellowProductFactory();

 

        FemaleProduct whiteFemale = whiteFactory.createFemaleProduct();

        MaleProduct blackMale = blackFactory.createMaleProduct();

        FemaleProduct yellowFemale = yellowFactory.createFemaleProduct();

 

        whiteFemale.display(); // 输出:白色-女性产品

        blackMale.display();   // 输出:黑色-男性产品

        yellowFemale.display(); // 输出:黄色-女性产品

    }

}

posted on 2024-11-18 15:26  Daniel350  阅读(11)  评论(0)    收藏  举报